-1
我想知道如果有一种方法来初始化和载体在一行中添加一些结构类似如何初始化和添加结构在单行向量
vector<Row> list;
//Row t;
list.push_back(Row t ={"",23});
我想知道如果有一种方法来初始化和载体在一行中添加一些结构类似如何初始化和添加结构在单行向量
vector<Row> list;
//Row t;
list.push_back(Row t ={"",23});
这应该工作:
list.push_back(Row{"",23});
以及本:
list.push_back({"",23});
上述工作适用于C++ 11和现代编译器,例如GCC或Clang。如果你不能使C++ 11或者它不与你的编译器的支持,你需要一个构造函数添加到:
struct Row
{
Row(const std::string& d, int w) : data(d), weight(w) {}
// ...
};
,你可以使用:
list.push_back(Row("",23));
我使用视觉工作室和它不工作。 typedef struct Row { \t字符串数据; \t int weight; \t }行; list.push_back(Row {“1111”,1});错误:struct Row..type name不允许 – kofhearts
@ user734861针对较早的编译器进行了更新。 –
@ user734861'typedef struct X {...} X;'在C++中没有意义,简单的'struct X {...};'也适用。 –