2009-12-24 88 views
0

我在做什么错?STL与自定义数据类型

#include <iostream> 
#include <deque> 
using namespace std; 

struct mystruct { 
     int number1; 
     int number2; 
}; 

int main() { 
    std::deque<mystruct> mydeque; 

    mydeque.number1.push_front(77); 

    return 0; 
} 

回答

6

push_front是双端队列的方法不是结构mystruct的数字1 ..

正确的做法是:

struct mystruct { 
     int number1; 
     int number2; 
mystruct(int n1, int n2) : number1(n1), number2(n2){} 
}; 

int main() { 
    std::deque<mystruct> mydeque; 

    mydeque.push_front(mystruct(77,88)); 

    return 0; 
} 
+0

感谢,这正是我想要的答案。 – 2009-12-24 06:03:14

0

你已经声明mydequemystruct个容器。它最初是空的,当然没有名为number1的公众成员。

mydeque.push_front({77, 88}); 
1

的双端队列为mystruct类型和你试图推动一个integer