c++如何给map赋值
时间: 2024-09-30 18:09:53 浏览: 31
在C++中,可以使用`std::map`的数据结构来存储键值对。`map`是关联容器,通常使用`<key_type, value_type>`作为模板参数。给`map`赋值有几种常见方式:
1. **构造并初始化**:
```cpp
std::map<std::string, int> myMap;
// 使用花括号添加元素,键值对形式
myMap["Key1"] = 10;
myMap["Key2"] = 20;
```
2. **迭代器插入**:
```cpp
std::map<std::string, int> myMap;
myMap.insert(std::make_pair("Key3", 30));
```
或者更简洁的形式:
```cpp
myMap["Key4"] = 40;
```
3. **从其他容器复制**:
如果已有其他容器(如`vector<pair>`)包含键值对,可以先创建一个`map`的迭代器范围,然后将它们插入到`map`中:
```cpp
std::vector<std::pair<std::string, int>> vec = {{"Key5", 50}, {"Key6", 60}};
myMap.insert(vec.begin(), vec.end());
```
4. **使用`std::map`的构造函数接受已经排序的输入**:
```cpp
std::vector<std::pair<std::string, int>> vec = {{"Key7", 70}, {"Key8", 80}};
std::map<std::string, int> myMap(vec);
```
注意,`map`会自动对键进行排序,所以当你插入键值对时,键需要是唯一的。
阅读全文