C++ vector 容器
文章目录
前言
本文包含vector基本概念、vector构造函数、vector赋值操作、vector容量和大小、vector插入和删除、vector数据存取、vector互换容器、vector预留空间。
1 vector 基本概念
功能: vector 数据结构和 数组非常相似,也称为 单端数组
vector 与普通数组区别: 不同之处在于数组是静态空间(大小固定),而 vector 可以 动态扩展
动态扩展:
(1)、并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间
(2)、vector 容器的迭代器是支持随机访问的迭代器

2 vector 构造函数
功能描述: 创建 vector 容器
函数原型:
(1)、vector<T> v; 采用模板实现类实现,默认构造函数
(2)、vector(v.begin(), v.end()); 将 v(begin(), end()) 区间中的元素拷贝给本身 (前闭后开)
(3)、vector(n, elem); 构造函数将 n 个 elem 拷贝给本身
(4)、vector(const vector &vec); 拷贝构造函数
// vector单端数组构造函数
#include <iostream> // 包含标准输入输出流头文件
using namespace std; // 使用标准命名空间
#include <vector> // 使用vector单端数组容器,需包含头文件vector
void Fun_Print(vector<int>& v) {
// 使用引用方式&,传入vector<int>类型的形参v
// vector<int>::iterator 拿到vector<int>这种容器的迭代器类型;每个容器都有一个专属的迭代器类型
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " "; // it是个迭代器类型,本是是个指针,需使用*解引用
}
cout << endl;
}
void test() {
// 1、默认构造,无参构造
vector<int> v;
// 2、将v开始迭代器到结束迭代器之间的元素,赋给v1
vector<int> v1(v.begin(), v.end());
// 3、将10个10拷贝给v
vector<int> v2(10, 10);
Fun_Print(v2); // 调用Fun_Print()函数,遍历v2
// 4、拷贝构造
vector<int> v3(v2);
Fun_Print(v3); // 调用Fun_Print()函数,遍历v3
}
int main() {
test();
cout << endl;
system("pause"); // 相当于在本地 Windows 调试器中的:请按任意键继续...;暂停,方便看清楚输出结果
return 0; // 程序正常退出
}

3 vector 赋值操作
功能描述: 给 vector 容器进行赋值
函数原型:
(1)、vector& operator=(const vector &vec); 重载等号操作符
(2)、assign(beg, end); 将 [beg, end) 区间中的数据拷贝赋值给本身
(3)assign(n, elem); 将 n 个 elem 拷贝赋值给本身
// vector单端数组赋值
#include <iostream> // 包含标准输入输出流头文件
using namespace std; // 使用标准命名空间
#include <vector> // 使用vector单端数组容器,需包含头文件vector
void Fun_Print(vector<int>& v) {
// 使用引用方式&,传入vector<int>类型的形参v
// vector<int>::iterator 拿到vector<int>这种容器的迭代器类型;每个容器都有一个专属的迭代器类型
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " "; // it是个迭代器类型,本是是个指针,需使用*解引用
}
cout << endl;
}
void test() {
// 默认构造,无参构造
vector<int> v;
for (int i = 0; i < 10; i++) {
v.push_back(i); // 向容器中存放数据
}
// 1、赋值 operator=
vector<int> v1 = v;
Fun_Print(v1);
// 2、使用assign()函数,将容器v起始迭代器到结束迭代器之间的元素赋给v1
vector<int> v2;
v2.assign(v.begin(), v.end());
Fun_Print(v2);
// 3、使用assign()函数,将10个'a'赋值给本身
vector<int> v3;
v3.assign
C++Vector容器详解:构造、操作与优化

本文详细介绍了C++中的vector容器,包括其基本概念、构造函数、赋值操作、容量与大小管理、元素插入与删除、数据存取方法、容器互换以及预留空间的功能。通过实例展示了如何有效地使用vector,并提到了使用swap技巧来优化内存管理。
最低0.47元/天 解锁文章
3481

被折叠的 条评论
为什么被折叠?



