📅  最后修改于: 2023-12-03 14:59:37.205000             🧑  作者: Mango
在C++中,地图(Map)和向量(Vector)都是非常有用的数据结构,可以用来存储和操作大量的数据。在本文中,我们将深入探讨这两个数据结构的用法和范例代码。
地图是一种关联容器(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的键值对。
向量是一种顺序容器(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++中常用的数据结构,可以为程序员提供丰富的存储和操作数据的功能。本文深入探讨了它们的使用方法和范例代码,希望能够帮助读者更好地理解和应用这两个数据结构。