大型平面设计网站,域名抢注,建网站业务如何开展,ppt设计兼职2024.12.3 C vector 容器
C vector 容器
类比成数组
C 中的 vector 是一种序列容器#xff0c;它允许你在运行时动态地插入和删除元素。
vector 是基于数组的数据结构#xff0c;但它可以自动管理内存#xff0c;这意味着你不需要手动分配和释放内存。
与 C 数组相比 vector 容器
C vector 容器
类比成数组
C 中的 vector 是一种序列容器它允许你在运行时动态地插入和删除元素。
vector 是基于数组的数据结构但它可以自动管理内存这意味着你不需要手动分配和释放内存。
与 C 数组相比vector 具有更多的灵活性和功能使其成为 C 中常用的数据结构之一。
vector 是 C 标准模板库STL的一部分提供了灵活的接口和高效的操作。
基本特性:
动态大小vector 的大小可以根据需要自动增长和缩小。连续存储vector 中的元素在内存中是连续存储的这使得访问元素非常快速。可迭代vector 可以被迭代你可以使用循环如 for 循环来访问它的元素。元素类型vector 可以存储任何类型的元素包括内置类型、对象、指针等。
使用场景
当你需要一个可以动态增长和缩小的数组时。当你需要频繁地在序列的末尾添加或移除元素时。当你需要一个可以高效随机访问元素的容器时。
要使用 vector首先需要包含 头文件
#include vector创建 Vector
创建一个 vector 可以像创建其他变量一样简单
std::vectorint myVector; // 创建一个存储整数的空 vector这将创建一个空的整数向量,也可以在创建时指定初始大小和初始值
std::vectorint myVector(5); // 创建一个包含 5 个整数的 vector每个值都为默认值0
std::vectorint myVector(5, 10); // 创建一个包含 5 个整数的 vector每个值都为 10
std::vecterint myVector(5); //5
std:vectorint myVector(5,10); //5 10或
std::vectorint vec; // 默认初始化一个空的 vector
std::vectorint vec2 {1, 2, 3, 4}; // 初始化一个包含元素的 vector
std::vectorint vec2{1,2,3,4}添加元素
可以使用 push_back 方法向 vector 中添加元素
myVector.push_back(7); // 将整数 7 添加到 vector 的末尾
myvector.push_back(7);访问元素
可以使用下标操作符 [] 或 at() 方法访问 vector 中的元素
int x myVector[0]; // 获取第一个元素
int y myVector.at(1); // 获取第二个元素
int x myVector[0];
int y myVector.at(1);获取大小
可以使用 size() 方法获取 vector 中元素的数量
int size myVector.size(); // 获取 vector 中的元素数量
int size myVector.size();C迭代访问
可以使用迭代器遍历 vector 中的元素
for (auto it myVector.begin(); it ! myVector.end(); it) {std::cout *it ;
}
//为什么这里有个星号呢
//回答迭代器本身只是一个指针它并不直接存储数据。而 *it 会返回 it 所指向的元素的引用允许你访问该元素的值。
//指针是一个变量其值为另一个变量的地址即内存位置的直接地址。 *it 是 解引用 操作符
for(auto it myVector.begin();it!myVector.end();it){std::cout *it ;
}或者使用范围循环
for (int element : myVector) {std::cout element ;
}
for(int element : myVectot){std:cout element ;
}删除元素
可以使用 erase() 方法删除 vector 中的元素
myVector.erase(myVector.begin() 2); // 删除第三个元素
myVector.erase(myVector.begin() 2);清空 Vector
可以使用 clear() 方法清空 vector 中的所有元素
myVector.clear(); // 清空 vector
myVector.clear(); // 清空 vector综合实例
以下是一个完整的使用实例包括创建 vector、添加元素、访问元素以及输出结果的代码
#include iostream
#include vectorint main() {// 创建一个空的整数向量std::vectorint myVector;// 添加元素到向量中myVector.push_back(3);myVector.push_back(7);myVector.push_back(11);myVector.push_back(5);// 访问向量中的元素并输出std::cout Elements in the vector: ;for (int element : myVector) {std::cout element ;}std::cout std::endl;// 访问向量中的第一个元素并输出std::cout First element: myVector[0] std::endl;// 访问向量中的第二个元素并输出std::cout Second element: myVector.at(1) std::endl;// 获取向量的大小并输出std::cout Size of the vector: myVector.size() std::endl;// 删除向量中的第三个元素myVector.erase(myVector.begin() 2);// 输出删除元素后的向量std::cout Elements in the vector after erasing: ;for (int element : myVector) {std::cout element ;}std::cout std::endl;// 清空向量并输出myVector.clear();std::cout Size of the vector after clearing: myVector.size() std::endl;return 0;
}以上代码创建了一个整数向量向其中添加了几个元素然后输出了向量的内容、元素的访问、向量的大小等信息接着删除了向量中的第三个元素并输出删除元素后的向量。最后清空了向量并输出清空后的向量大小。
输出结果为
Elements in the vector: 3 7 11 5
First element: 3
Second element: 7
Size of the vector: 4
Elements in the vector after erasing: 3 7 5
Size of the vector after clearing: 0