📜  C ++中的地图向量及范例(1)

📅  最后修改于: 2023-12-03 14:59:37.205000             🧑  作者: Mango

C++中的地图(Map)和向量(Vector)及范例

在C++中,地图(Map)和向量(Vector)都是非常有用的数据结构,可以用来存储和操作大量的数据。在本文中,我们将深入探讨这两个数据结构的用法和范例代码。

地图(Map)

地图是一种关联容器(Associative Container),它可以将键值对(Key-Value Pairs)进行映射和存储。每个键对应唯一的值,因此可以快速地通过键来查找对应的值。下面是一个简单的例子,展示了如何使用地图来存储整数和字符串之间的映射关系。

#include <iostream>
#include <map>

using namespace std;

int main() {
   map<int,string> myMap;
   myMap[1] = "One";
   myMap[2] = "Two";
   myMap[3] = "Three";
   
   cout << "Value at key 1: " << myMap[1] << endl;
   cout << "Value at key 2: " << myMap[2] << endl;
   cout << "Value at key 3: " << myMap[3] << endl;
   
   return 0;
}

运行以上程序,输出将会是:

Value at key 1: One
Value at key 2: Two
Value at key 3: Three

在这个例子中,我们创建了一个名为 myMap 的地图,这个地图用于将整数和对应的字符串进行映射。接着,我们将一些键值对存储到地图中,然后通过键从地图中获取对应的值打印输出。需要注意的是,我们使用了 [] 运算符来访问地图中的值,这是地图的一种常见访问方式。

另一种常用的地图访问方式是使用 at 成员函数,如下所示:

cout << "Value at key 1: " << myMap.at(1) << endl;

这种方式与使用 [] 运算符的效果相同,但更为安全,因为当地图中不存在指定的键时,at 函数将抛出一个 out_of_range 异常。

从地图中删除键值对可以使用 erase 成员函数,例如:

myMap.erase(2);

这将删除地图中键为2的键值对。

向量(Vector)

向量是一种顺序容器(Sequence Container),它可以存储一组数据,并支持快速的随机访问和动态扩容。下面是一个简单的例子,展示了如何使用向量来存储整数,并遍历所有的元素。

#include <iostream>
#include <vector>

using namespace std;

int main() {
   vector<int> myVector;
   myVector.push_back(1);
   myVector.push_back(2);
   myVector.push_back(3);
   
   for (int i = 0; i < myVector.size(); i++) {
      cout << "Element at index " << i << ": " << myVector[i] << endl;
   }
   
   return 0;
}

运行以上程序,输出将会是:

Element at index 0: 1
Element at index 1: 2
Element at index 2: 3

在这个例子中,我们创建了一个名为 myVector 的向量,这个向量用于存储整数。然后,我们使用 push_back 成员函数将一些元素添加到向量中,并使用 size 成员函数获取向量的大小,使用 [] 运算符遍历向量中的元素,并打印出每个元素的值和索引。

从向量中删除元素可以使用 erase 成员函数,例如:

myVector.erase(myVector.begin() + 1);

这将删除向量中下标为1的元素。

总结

地图和向量是C++中常用的数据结构,可以为程序员提供丰富的存储和操作数据的功能。本文深入探讨了它们的使用方法和范例代码,希望能够帮助读者更好地理解和应用这两个数据结构。