插入到字符串的std :: vector,列表对

时间:2016-05-24 12:56:18

标签: c++ list c++11 vector

我想在std::vector<std::pair<std::string, std::list<std::string>> > m_Vec;

中添加元素

具有类似

的功能
void setVec(const std::string &node, const std::string &value) 
{
    m_Vec.emplace_back(node, ???);    
}

如何将列表字符串值插入我的矢量对?

应该是这样的:

"id1" -> list of string values
"id2" -> list of string values
...
"id10" -> list of string values

订单在这里很重要!

1 个答案:

答案 0 :(得分:1)

  

如何将列表字符串值插入我的矢量对?

首先,创建一个列表:

std::list<std::string> a_list;

然后根据需要在列表中添加任意数量的字符串。在这里,我添加一个字符串:

a_list.emplace_back("I am a string");

最后,您可以复制 - 初始化对中的列表:

m_Vec.emplace_back(node, a_list);

以上是为了阐述。可以避免复制,所有这些都可以压缩为:

m_Vec.emplace_back(node, std::list<std::string>{"I am a string"});