21xrx.com
2024-12-28 08:38:52 Saturday
登录
文章检索 我的文章 写文章
C++中的有序映射(map)
2023-07-05 05:40:43 深夜i     --     --
C++ 有序映射 Map数据结构 Key-Value对 红黑树

在C++中,有序映射(map)是一种数据结构,它可以将键映射到值。与无序映射(unordered_map)不同,有序映射将键按升序排序,因此可以进行二分查找等高效操作。

有序映射可以存储各种类型的键和值,例如整数、字符串或自定义类型。它内部使用红黑树(Red-Black Tree)来进行排序和查找操作。

使用有序映射时,我们可以通过insert()方法添加键值对,通过erase()方法删除键值对,以及通过find()方法查找键对应的值。此外,还可以使用下标操作符[]来访问键对应的值。如果要获取所有键值对,可以使用迭代器(iterator)进行遍历。

以下是一个简单的例子,演示如何使用C++中的有序映射:


#include <iostream>

#include <map>

using namespace std;

int main() {

 map<string, int> my_map;

 

 // 添加键值对

 my_map.insert(pair<string, int>("Alice", 20));

 my_map.insert(make_pair("Bob", 25));

 my_map["Charlie"] = 30;

 // 访问键对应的值

 cout << "Alice's age is " << my_map["Alice"] << endl;

 // 删除键值对

 my_map.erase("Bob");

 // 使用迭代器遍历

 map<string, int>::iterator it;

 for (it = my_map.begin(); it != my_map.end(); ++it)

  cout << it->first << " is " << it->second << " years old." << endl;

 

 return 0;

}

在上面的例子中,我们首先创建了一个映射对象my_map,它将字符串类型的姓名映射到整数类型的年龄。然后我们添加了三个键值对,并使用下标操作符[]访问了一个键对应的值。接下来,我们使用erase()方法删除了一个键值对,并使用迭代器遍历了所有键值对,分别输出了其对应的键和值。

总的来说,C++中的有序映射是一个非常实用的数据结构,可以在许多场景中发挥重要作用。使用map,我们可以方便地进行键值对的添加、删除、查找和遍历等常见操作,从而提高程序的效率和可读性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章