C++ 映射<字符串, vector <对<字符串,字符串>>> : adding a mapping to an empty vector?

标签 c++ templates map vector containers

我是 C++ 容器模板的新手。我收集了一些记录。每条记录都有一个唯一的名称,以及一个字段/值对列表。将按名称访问记录。字段/值对的顺序很重要。因此我设计如下:

typedef string      Typecode;
typedef string      Fieldname;
typedef string      Fieldvalue;
typedef vector<pair<Fieldname, Fieldvalue> >  Field_value_pairs;
typedef map<Typecode, Field_value_pairs>      Record_map;

Record_map          records;

我想定义一个方法 add_record(Typecode),它将使用 Typecode 类型的键和一个空的 Field_value_pairs vector 向 records 添加一个条目。 (稍后我将添加部分或全部字段/值对。)但我似乎无法弄清楚要使用什么 map<> 和 vector<> 方法。

我想我想使用operator=,如records["foo_record"] =。但是我应该分配什么作为值,以创建一个“成对的空 vector ”?

最佳答案

你应该指定为:

records["foo_record"] = vector<pair<Fieldname, FieldValue> >();

std::vector 的默认构造函数将创建一个空 vector ,然后您可以使用以下方法向其添加新值

records["foo_record"].push_back(pair<Fieldname, FieldValue>("name", "value"));

关于C++ 映射<字符串, vector <对<字符串,字符串>>> : adding a mapping to an empty vector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17495949/

相关文章:

c++模板偏特化成员函数

java - 如何将 Map 封装到自定义对象中

c++ - 相当于 C++ 中的 `<T extends MyClass>`

Haskell:在函数组合中使用映射

google-maps - 如何获得谷歌静态 map 的边界?

c++ - c++ 和 python 中的算法相同但输出不同

c++ - 在标量场上行进立方体期间的插值问题

c++ - 如何创建指向函数C++的指针的线程

c++ - 析构函数问题

C++ 模板元编程——根据运行时输入返回一个类型