📅  最后修改于: 2023-12-03 15:14:03.352000             🧑  作者: Mango
关联数组也被称为映射或字典,是一种基于键值对的数据结构,其中键和值一一对应。在C++中,可以使用std::map
或std::unordered_map
等STL容器实现关联数组。
可以使用以下语法定义关联数组:
#include <map>
#include <string>
std::map<std::string, int> myMap; // key为字符串类型,值为整数类型的关联数组
使用insert()
函数可以将键值对插入关联数组中:
myMap.insert(std::make_pair("apple", 1));
myMap.insert(std::make_pair("orange", 2));
myMap["banana"] = 3; // 使用下标运算符[]也可以插入元素
使用[]
运算符和at()
函数可以访问关联数组中的元素:
int num = myMap["apple"]; // num的值为1
int num2 = myMap.at("orange"); // num2的值为2
需要注意的是,如果关联数组中不存在对应的键,[]
运算符会自动创建一个对应值为默认值的键值对。而at()
函数则会抛出异常。
可以使用erase()
函数删除关联数组中指定键的元素:
myMap.erase("apple"); // 删除键为"apple"的元素
可以使用迭代器或for-each
循环遍历关联数组,如:
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl; // 输出每个键值对
}
for (const auto& [key, value] : myMap) {
std::cout << key << ": " << value << std::endl; // 使用C++17的结构化绑定输出每个键值对
}
关联数组是一种非常实用的数据结构,可以快速查找和操作元素。在C++中,STL提供了多种实现方式,程序员可以根据实际需求选择合适的容器类型。