如何在单行中初始化结构并将其添加到矢量

how to initialize and add struct to vector in single line

本文关键字:添加 单行中 初始化 结构      更新时间:2023-10-16

我想知道是否有办法在一行中初始化和添加向量中的结构,例如

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 或编译器不支持它,则需要在 Row 中添加构造函数:

struct Row
{
    Row( const std::string& d, int w ) : data( d ), weight( w ) {}
    // ...
};

您可以使用:

list.push_back(Row("",23));