如何在单行中初始化和向向量添加struct

时间:2013-10-24 18:16:03

标签: c++ struct

我想知道是否有一种方法可以在一行中初始化和添加结构中的结构,如

vector<Row> list;

//Row t;

list.push_back(Row t ={"",23});

1 个答案:

答案 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));