c++map+的键值
时间: 2023-12-10 11:35:55 浏览: 84
C++中的map是一种关联容器,它将键映射到值。在map中,每个键只能出现一次,而值可以多次出现。map中的元素按照键的自然顺序排序,或者可以使用自定义比较函数进行排序。map的键和值可以是任何数据类型,只要它们可以被小于运算符进行比较。
以下是一个使用map的例子,演示如何添加和访问键值对:
```c++
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> myMap;
// 添加键值对
myMap["apple"] = 5;
myMap["banana"] = 3;
myMap["orange"] = 2;
// 访问键值对
std::cout << "Number of apples: " << myMap["apple"] << std::endl;
std::cout << "Number of bananas: " << myMap["banana"] << std::endl;
std::cout << "Number of oranges: " << myMap["orange"] << std::endl;
return 0;
}
```
输出结果为:
```
Number of apples: 5
Number of bananas: 3
Number of oranges: 2
```
相关问题
c++ map获取键值
在C++中,`std::map` 是一种关联容器,用于存储键值对,其中每个键都是唯一的。如果你想获取特定键对应的值,可以按照以下步骤操作:
1. 首先,你需要包含头文件 `<map>` 来使用 `std::map` 容器:
```cpp
#include <map>
```
2. 创建一个 `std::map` 对象,比如 `std::map<std::string, int> myMap;`,这里的键是 `std::string` 类型,值是 `int` 类型。
3. 使用 `[]` 运算符查找键并获取其对应的值。如果键存在,你可以这样做:
```cpp
int value = myMap["key"];
```
如果键不存在,这将返回默认构造的值(对于 `int` 是 `0` 或者抛出异常,取决于 `map` 实现的行为)。
4. 也可以使用 `find` 函数来查找键,这样更安全,因为它不会引发异常:
```cpp
auto it = myMap.find("key");
if (it != myMap.end()) {
int value = it->second;
} else {
// 键不存在
}
```
在这个例子中,`it->first` 是键,`it->second` 是对应的值。
c++ map删除键值对
你可以使用 `erase` 函数来删除 C++ 中的 `map` 容器中的键值对。以下是一个示例代码:
```
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
// 删除键值对 2: "banana"
myMap.erase(2);
// 输出剩余的键值对
for(auto const& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
在这个示例中,我们首先创建了一个 `map` 容器,并插入了三个键值对。然后,我们使用 `erase` 函数删除键值对 2: "banana"。最后,我们循环输出剩余的键值对。注意,在使用 `erase` 函数时,你可以传递要删除的键的值,也可以传递一个指向该键的迭代器。
阅读全文