向量空 Push_back 在“{”标记之前调用预期的主表达式
Vector empty Push_back calls for expected primary-expression before '{' token
我的编译器有问题
我在 gnugcc 中使用代码块
我想做:
table.push_back({""});
它说
main.cpp|22|error: expected primary-expression before '{' token|
代码在 VS 和其他编译器中工作......到底是什么?
vector < car > AddCar()
{
int i;
vector < car > table;
string check;
table.push_back({""});
for (i = 0; i < table.size(); i++)
{
cout << "marka: ";
cin >> table[i].mark;
cout << "model: ";
cin >> table[i].model;
cout << "cena: ";
cin >> table[i].price;
cout << endl;
table.push_back(car());
...
是的,我想要一个空的回击
出现此错误是因为您可能没有启用 C++11。例如,考虑 this program:
#include <iostream>
#include <string>
#include <vector>
struct Car {
std::string a;
};
int main() {
std::vector<Car> example;
example.push_back({""});
}
在 GCC 8.2.0 中使用 C++98 运行 时,显示的错误是:
prog.cc: In function 'int main()':
prog.cc:12:23: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
example.push_back({""});
^
prog.cc:12:27: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
example.push_back({""});
^
运行 这与 C++11 修复了错误。
我的编译器有问题
我在 gnugcc 中使用代码块
我想做:
table.push_back({""});
它说
main.cpp|22|error: expected primary-expression before '{' token|
代码在 VS 和其他编译器中工作......到底是什么?
vector < car > AddCar()
{
int i;
vector < car > table;
string check;
table.push_back({""});
for (i = 0; i < table.size(); i++)
{
cout << "marka: ";
cin >> table[i].mark;
cout << "model: ";
cin >> table[i].model;
cout << "cena: ";
cin >> table[i].price;
cout << endl;
table.push_back(car());
...
是的,我想要一个空的回击
出现此错误是因为您可能没有启用 C++11。例如,考虑 this program:
#include <iostream>
#include <string>
#include <vector>
struct Car {
std::string a;
};
int main() {
std::vector<Car> example;
example.push_back({""});
}
在 GCC 8.2.0 中使用 C++98 运行 时,显示的错误是:
prog.cc: In function 'int main()':
prog.cc:12:23: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
example.push_back({""});
^
prog.cc:12:27: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
example.push_back({""});
^
运行 这与 C++11 修复了错误。