2015-02-28 4 views
1

Мне нужно построить сканер, работающий с front_queues и back_queues, которые являются векторами очередей. Я видел решения в этом вопросе Vector of queues, но мой компилятор жалуется, что vec нуждается в конструкторе.Как построить вектор очередей?

#include <vector> 
#include <queue> 

using namespace std; 

vector<queue<int> > vec; 
vec.push_back(queue<int>(0)); 
//^
// error: expected constructor, destructor, or type conversion before ‘.’ token 
+0

Имеет ли 'std :: queue' конструктор, который принимает единственный' int'? – Galik

+0

@Galik это опечатка. Он не должен принимать переменную pass-in. – knh170

ответ

5

Вам нужно поместить вызовы функций внутри блоков.

Попробуйте добавить main функцию:

#include <vector> 
#include <queue> 

using namespace std; 

int main() 
{ 
    vector<queue<int> > vec; 
    queue<int>   q; 

    vec.push_back(q); 
    return (0); 
} 

queue не имеет список инициализатора:

Согласно queue «ы ссылки конструктора (Source), вы не можете использовать queue<int>(0) потому что соответствующий конструктор не будет соответствовать. Тем не менее, вы можете использовать queue<int>(). Он создаст пустую очередь. Взгляните на этот онлайн-пример: https://ideone.com/RbT1pD

Смежные вопросы