我想知道是否有一种方法可以在一行中初始化和添加结构中的结构,如
vector<Row> list;
//Row t;
list.push_back(Row t ={"",23});
答案 0 :(得分:4)
这应该有效:
list.push_back(Row{"",23});
以及:
list.push_back({"",23});
以上适用于C ++ 11和现代编译器,例如GCC或Clang。如果您无法启用C ++ 11或者编译器不支持它,则需要向Row
添加构造函数:
struct Row
{
Row( const std::string& d, int w ) : data( d ), weight( w ) {}
// ...
};
你可以使用:
list.push_back(Row("",23));