STL vector容器

vector容器类似数组

vector容器不能直接使用输出 只能使用数组遍历输出

需要使用<vector>头文件

赋值

void text01() {
	vector<int> v1 = { 1,2,3,4,5 };
	vector <char> v2 = { 'a','x','d','g' };
	vector <double> v3 = { 1.2,2.3,3.3,5.4,6.7 };
	vector <string>v4 = { "hello","world","love","china" };
	cout << v1[0] << endl;

 复制

void text02() {
	vector<int>v1(10);// 定义一个含有10个整形变量,默认是0
	cout << v1[1] << endl;
	vector<int>v2(8, 8);//定义8个,默认是8
	cout << v2[3] << endl;
	vector<int>v3(v2);//v2赋值给v3
	cout << v3[1] << endl;
	vector<int>v4(v2.begin(), v2.begin() + 1);//v2begin到begin+1
	cout << v4.size() << endl;
}

 遍历

void text03() {//遍历
	vector<int>v = { 1,2,3,4,5,6 };
	cout << v.at(2) << endl;//下标
	cout << v.front() << endl;//首
	cout << v.back() << endl;//尾
	for (auto i = v.begin(); i != v.end(); i++) {//迭代
		cout << *i << "  ";
	}
	cout << endl;
	for (auto i = v.rbegin(); i != v.rend(); i++) {
		cout << *i << "  ";
	}
	cout << endl;
}

 迭代器只能用end 不能用back

增加

void text04() {
	vector<int>v = { 1,2 };
	vector<int>v1 = { 100,200 };
	v.push_back(333);//2后面添加
	v.insert(v.begin(), 2);//前面插入2
	v.insert(v.begin() + 1, 2, 4);//插入2个4
	v.insert(v.begin() + 1, v1.begin(), v1.end());
	for (auto i = v.begin(); i != v.end(); i++) {
		cout << *i << " ";
	}
	cout << endl;
}

 push_back最后添加

insert插入

删除

void text05() {
	vector<int>v = { 1,2,3,4,5,6 };
	//判断空
	cout<<v.empty() << endl;
	v.erase(v.begin()+2);//迭代器
	v.erase(v.begin() + 1, v.begin() + 3);
	v.pop_back();//删除最后一个
	for (auto i = v.begin(); i != v.end(); i++) {
		cout << *i << " ";
	}
	cout << endl;
	v.clear();//清零
	cout << v.empty() << endl;//1为空
	for (auto i = v.begin(); i != v.end(); i++) {
		cout << *i << " ";
	}
	cout << "1" << endl;
}

 pop_back

erase 

empty判断

clear

大小

void text06() {
	vector<int>v = { 1,2,3,4,5 };
	cout << v.size() << endl;
	cout << v.capacity() << endl;//数组最大容纳
	cout << v.max_size() << endl;//计算机
}

 capacity数组最大容量

其他

void text07() {
	vector<int>v;
	v.assign(10, 2);//前10为2

	//for (auto i = v.begin(); i != v.end(); i++) {
	//	cout << *i << " ";
	//}
	//cout << endl;
	vector<int>v1 = { 1,2,3,4,5,6 };
	vector<int>v2 = { 111,222,333 };
	//v1.assign(v2.begin(), v2.end());//替换
	v1.swap(v2);
	for (auto i = v1.begin(); i != v1.end(); i++) {
		cout << *i << " ";
	}
	cout << endl;
	for (auto i = v2.begin(); i != v2.end(); i++) {
		cout << *i << " ";
	}
}

 

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值