21xrx.com
2024-12-29 04:30:31 Sunday
登录
文章检索 我的文章 写文章
C++中使用Map数据结构
2023-06-27 09:28:09 深夜i     --     --
C++ Map数据结构 数据类型 插入与查找

Map是C++ STL中常用的数据结构之一。它是一种关联容器,可以将键值对(key-value pairs)存储在其中,并且支持以下操作:插入,查找和删除。

在Map中,键(key)是独一无二的,而值(value)则可以重复出现。两者一一对应,相当于将一个键映射到一个值。若想在Map中插入和查找元素,需要使用Insert和Find函数。其中Insert函数将一个元素插入到Map中,如果该元素已经存在,则Insert函数不会起作用。而Find函数可以查找元素是否已存在于Map中。

另外,对于Map中的元素,可以使用下标符号([ ])来进行访问。通过下标符号,可以直接访问特定键所对应的值。

以下是一个使用Map进行简单操作的例子:


#include <iostream>

#include <map>

using namespace std;

int main()

{

  // 定义Map对象

  map<int, string> phoneBook;

  

  // 插入键值对

  phoneBook.insert(pair<int, string>(1001, "Tom"));

  phoneBook.insert(pair<int, string>(1002, "Jack"));

  

  // 访问Map中的元素

  cout << "Tom's phone number is " << phoneBook[1001] << endl;

  cout << "Jack's phone number is " << phoneBook[1002] << endl;

  

  // 查找元素

  if (phoneBook.find(1003) != phoneBook.end())

    cout << "Mary's phone number is " << phoneBook[1003] << endl;

  else

    cout << "Mary is not in the phone book." << endl;

    

  // 删除元素

  phoneBook.erase(1002);

  

  // 遍历Map中的元素

  for (auto it = phoneBook.begin(); it != phoneBook.end(); ++it)

    cout << it->first << " : " << it->second << endl;

  

  return 0;

}

上述代码定义了一个Map对象phoneBook,将1001映射到"Tom",将1002映射到"Jack"。接着使用下标符号访问Map中的元素,输出了Tom和Jack各自的电话号码。之后通过Find函数查找了Map中是否存在1003对应的元素,因为不存在,所以输出了相应的提示。删除了Map中的1002元素后,使用迭代器遍历了Map中的所有元素,并输出了它们的键值对。

总之,Map是一个强大的 STL容器,可以用于实现许多常见的应用程序。使用Map可以快速查找和操作键值对,因此在编程中应该积极考虑它的使用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复