c++ vector 数组_C++ 动态数组 std::vector

返回 C++小白入门

cplusplus 官网 vector

【介绍】

动态数组vector是C语言数组的动态版本;

其目标是可以操持C语言数组下标访问元素的效率的同时,不需要一开始固定容器大小;

在vector内部,我们可以假设元素是连续存放的;

元素可以在执行过程中不断的添加;

87d89b333433d545c49be4c677615125.png

删除中间的任意元素可以认为都是低效率的,因为会涉及到后续元素的移动;

4603f024af0538b36d230bab8a5ea147.png

当容器申请的空间用完了以后,需要再次申请更大的连续内存,并在拷贝数据过去之后释放掉原来的内存。

322fc73a64653b79fe0740a031f69ce6.png

【创建数组】vector是准备取代C语言数组的一个标准库类型。

vector<int> arr;//定义一个可以存放整数的数组

【访问元素】vector最大的特点是可以用常量时间访问任意位置的元素:

int i = arr[58];//将下标位置为58的元素值赋值给整型变量i

【添加元素】到vector可以使用push_back(i)方法:

arr.push_back(i);//arr的末尾新增了一个元素

【元素数量】当前容器有多少元素size()

int c = arr.size();//获取数组元素数量存到c中

【判断空】当前容器是不是一个元素也没有的空数组:

bool e = arr.empty();//如果元素个数为0,就返回true

【遍历】使用下标遍历:

for(int i = 0; i < arr.size(); ++i)
{
    cout<<arr[i]<<endl;//使用下标访问元素
}

【遍历】使用迭代器遍历:

for(auto itr = arr.begin(); itr != arr.end(); ++itr)
{
    cout<<*itr<<endl;//使用迭代器的解引用操作获取元素的引用
}

【遍历】使用C++11 范围for循环:

for(auto& i  :  arr)
{
    cout<<i<<endl;//使用范围for循环遍历元素
}

【示例代码】

#include <iostream>
#include <vector>

using namespace std;

int main()
{
	vector<int> a;//定义一个动态数组
	//向动态数组中放整数:0~9
	for (size_t i = 0; i < 10; i++)
	{
		a.push_back(i);
	}
	
	cout << "vector size:" << a.size() << endl;
	//输出数组中的每一个元素
	for (size_t i = 0; i < a.size(); i++)
	{
		cout << a[i] << " ";
	}

	return 0;
}

22ab5130281a1152f9d618aad3630dfa.png

返回 C++小白入门


版权声明:本文为weixin_30151565原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。