插入元素:
std::map<int, std::string> m;
// 方法1:使用插入函数 std::map::insert
m.insert(std::pair<int, std::string>(1, "apple"));
m.insert(std::make_pair(2, "banana"));
m.insert({3, "cherry"});
// 方法2:使用下标运算符 std::map::operator[]
m[4] = "durian";
删除元素:
// 删除指定键的元素
m.erase(2);
// 删除迭代器指向的元素
auto it = m.find(3);
if (it != m.end()) {
m.erase(it);
}
// 删除所有元素
m.clear();
修改元素:
// 修改指定键的元素
m[1] = "apricot";
// 修改迭代器指向的元素
auto it = m.find(2);
if (it != m.end()) {
it->second = "blueberry";
}
查找元素:
// 查找指定键的元素
auto it = m.find(1);
if (it != m.end()) {
std::cout << "The value of key 1 is: " << it->second << std::endl;
}
// 查找所有元素
for (auto& p : m) {
std::cout << "Key: " << p.first << ", Value: " << p.second << std::endl;
}
其中,使用迭代器进行元素操作的方法可以保证时间复杂度为 O(log n),而使用下标运算符 operator[]
的方法则会在需要时自动插入新元素,因此可能会有额外的开销。