Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 来自stl的队列_C++_Stl_G++_Standard Library - Fatal编程技术网

C++ 来自stl的队列

C++ 来自stl的队列,c++,stl,g++,standard-library,C++,Stl,G++,Standard Library,我正在尝试使用g++4.2.1编译以下代码,并收到以下错误 代码: #包括 #包括 使用名称空间std; int main(int argc,char*const argv[] { 队列myqueue(); 对于(int i=0;i FooBar = FoeWe(;)/和 FooBar = FoO(a,b,c);< /Cord>。但是我也不太喜欢这个……所以Foo Bar();不调用构造函数Fo::Foe:()?如果它产生编译错误,则不能使用。 void f() { List x;

我正在尝试使用g++4.2.1编译以下代码,并收到以下错误

代码:

#包括
#包括
使用名称空间std;
int main(int argc,char*const argv[]
{    
队列myqueue();
对于(int i=0;i<10;i++)
myqueue.push(i);
cout

列表x;
列表x();
之间有什么区别吗? 大不一样

假设
List
是某个类的名称。然后函数
f()
声明一个名为
x
的本地
List
对象:

void f()
{
  List x;     // Local object named x (of class List)
  ...
}
但是函数
g()
声明了一个名为
x()
的函数,该函数返回一个
列表

void g()
{
  List x();   // Function named x (that returns a List)
  ...
}

queue myqueue();
替换为
queue myqueue;
,您会没事的。

如果需要进一步研究,这有时也被称为“最麻烦的解析”:成功了!非常感谢。出于好奇,队列中没有构造函数吗?我有括号是因为我必须调用构造函数。或者我只有在新调用对象时才会这样做吗?没有括号的版本会调用无参数构造函数。
Foo-bar;
constructs
bar
使用构造函数
Foo::Foo()
Foo-bar(a,b,c);
使用构造函数
Foo::Foo(a,b,c)
构造
bar
新Foo;和
新Foo()两个都构造了<代码> Foo,但是这是不一致的,可怕的。这是C++的:这是为什么有些人喜欢写代码> FooBar = FoeWe(;)/<代码>和<代码> FooBar = FoO(a,b,c);< /Cord>。但是我也不太喜欢这个……所以Foo Bar();不调用构造函数Fo::Foe:()?如果它产生编译错误,则不能使用。
void f()
{
  List x;     // Local object named x (of class List)
  ...
}
void g()
{
  List x();   // Function named x (that returns a List)
  ...
}