2 minute read


The std::deque function is a highly useful function that allows us to create and manipulate double-ended queues in the C++ programming language. However, we can often get errors from the compiler such as:

error: ‘deque’ is not a member of ‘std’

This error is pretty straight-forward to fix as we will see below.

Potential causes

The deque is not a member of std error could be caused by multiple reasons. ###Fix #1: Add deque to your dependencies

Essentially, the std::deque function needs to have access to the deque module in order to be executed by the compiler.

Therefore, you must add the following #include header to the top of your code (in the include(s) part) such as:

#include <deque> //Add this

int main() {
    std::deque<int> myDeque;
    return 0;

The compiler should now recognize the std::deque function, thus fixing the deque is not a member of std error.

Fix #2: Using namespace std

Note that we have previously typed: std::deque instead of deque. We can type “deque” only if we are declaring that we are using its namespace.

In other words, we would need to type “using namespace std” in the header if we only want to type deque (which is obviously shorter) instead of std::deque. For instance, we can have something like:

#include <deque>
using namespace std; //Add this

int main() {
    deque<int> myDeque;
    return 0;

It is okay to type std::deque without typing “using namespace std”. In fact, it is generally recommended to type the full std::deque function name (and therefore avoiding using namespace std) when working with multiple libraries because it can reduce future confusion.

However, if you still want to type “deque” instead of “std::deque”, then you need to add “using namespace std” to the header.


Read more about the std::deque function here: https://www.cplusplus.com/reference/deque/deque/