STL—vector类

vector的介绍:

1.vector是表示可变大小的数组序列容器。

2.vector采用连续存储空间来存储元素,就像数组一样,可以采用下标对vercot的元素进行访问,vertor的底层采用动态的顺序表,它的大小是可以改变的,而且它的大小会被容器自动处理。

vector的使用

1.vector的定义:

        vector<int> v1(); // 无参构造

	vector<int> v2(10,5); // 构造并初始化10个5

	int array[] = {1,2,3,4,5};	
	//STL中所有的容器都是左闭右开的
	vector<int> v3(array,array+sizeof(array)/sizeof(array[0])); //使用指针初始化构造
	
	vector<int> v4(array,array+3);
	
	string s("hello");
	vector<char> v5(s.begin(),s.end()); // 使用迭代器进行初始化构造
	
	
	vector<char> v6(v5); // 拷贝构造

	C++新增加了列表的初始化
	vector<int> v7{1,2,3,4,5};  有些编译器版本不支持

vector迭代器的使用:

begin / end :获取第一个数据位置的iterator/const_iterator / 获取最后一个数据的下一个位置 的iterator/const_iterator

vector<int> :: iterator it = v.begin()
 ++it // 从begin向end的方向进行移动 --- 正向迭代器

vector<int> :: reverse iterator rit = v.rbegin()
 ++rit // 从rbegin向rend方向进行移动 -- 反向迭代器

rbegin / rend :获取最后一个数据位置的reverse_iterator / 获取第一个数据前一个位置的 reverse_iterator
 

使用迭代器对vector中的元素进行遍历

void Test12()
{
	int array[] = {1,2,3,4,5,6,7,8,9,0};
	vector<int> v(array,array+sizeof(array)/sizeof(array[0]));

	auto rit = v.rbegin();
	auto it = v.begin();
	while(it != v.end())
	{
		cout<<*it<<" ";
			it++;
	}
	cout<<endl;
	while(rit != v.rend())
	{
		cout<<*rit<<" ";
			rit++;
	}
	cout<<endl;
	
}

使用迭代器的小技巧:如果我们要使用迭代器就要声明这么长的一段代码vector<int> :: iterator it = v.begin(),为了减轻人们的负担,可以使用auto来让编译器自己来识别类型,从而减轻人们的负担同时避免错误

vector<int> :: iterator it = v.begin() ----> auto it = v.begin()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值