vector的使用方法

//vector<vector> arr(2, vector(5));//创建2行5列的二维数组,初值值为0
//1. vector在C++标准模板库中的部分内容,它是一个多功能的,
//能够操作多种数据结构和算法的模板类和函数库。
//2. 编程语言方面:vector是C++标准模板库中的部分内容,
//中文偶尔译作“容器”,但并不准确。它是一个多功能的,
//能够操作多种数据结构和算法的模板类和函数库。
//vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,
//简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
//3. 标准模板库(Standard Template Library,STL)是惠普实验室开发的一系列软件的统称。
//STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),
//几乎所有的代码都采用了模板类和模板函数的方式,
//这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。
//v.empty();//检查是否为空
//v.capacity();//返回当前vector中最大可以存储数据的容量
//v.size();//返回v中元素的个数
//v[n];//获取v中第n个元素
//begin成员负责返回指向第一个元素(或第一个字符)的迭代器;
//end成员负责返回指向容器(或string对象)的尾元素的下一个位置的迭代器。
//begin和end返回的具体类型由对象是否是常量决定,如果对象是常量,
//begin和end返回const_iterator;如果对象不是常量,返回iterator;

//#include <iostream>
//#include <vector>
//int main(){
//	size_t sz;
//	std::vector<int> foo;
//	sz = foo.capacity();
//	std::cout << "making foo grow:\n";
//	for (size_t i = 0; i < 100; i++){
//		foo.push_back(1);
//		if (sz != foo.capacity()){
//			sz = foo.capacity();
//			std::cout << "capacity changed:" << sz << '\n';
//		}
//	}
//	std::vector<int> bar;
//	sz = bar.capacity();
//	bar.reserve(100);
//	std::cout << "making foo grow:\n";
//	for (size_t i = 0; i < 100; i++){
//		bar.push_back(1);
//		if (sz != bar.capacity()){
//			sz = bar.capacity();
//			std::cout << "capacity changed:" << sz << '\n';
//		}
//	}
//
//	std::vector<int> myvector;
//	for (int i = 0; i < 10; i++){
//		myvector.push_back(i);
//	}
//	myvector.resize(5);
//	myvector.resize(8,100);
//	myvector.resize(12);
//
//	std::cout << "myvector contains:\n";
//	for (size_t i = 0; i < myvector.size(); i++){
//
//		std::cout << " " << myvector[i];
//	}
//	std::cout << "\n";
//	system("pause");
//	return 0;
//}
vs:1.5增长
g++:2增长
//#include <iostream>
//#include <vector>
//
//void PrintVector(const std::vector<int>& v){
//	//使用const_iterator进行遍历
//	std::vector<int>::const_iterator it = v.cbegin();
//	while (it != v.cend()){
//		std::cout << *it++ << " ";
//	}
//	std::cout << std::endl;
//}
//int main(){
//	std::vector<int> v;
//	v.push_back(1);
//	v.push_back(2);
//	v.push_back(3);
//	v.push_back(4);
//	//使用迭代器进行遍历
//	std::vector<int>::iterator it = v.begin();
//	while (it != v.end()){
//		std::cout << *it++ << " ";
//	}
//	std::cout << std::endl;
//	//使用迭代器进行修改
//	it = v.begin();
//	while (it != v.end()){
//		*it *= 2;
//		++it;
//	}
//	//使用反向迭代器进行打印
//	std::vector<int>::reverse_iterator rit = v.rbegin();
//	while (rit != v.rend()){
//		std::cout << *rit++ << " ";
//	}
//	std::cout << std::endl;
//	PrintVector(v);
//
//	system("pause");
//	return 0;
//}
#include <iostream>
#include <algorithm> 
#include <vector>
using namespace std;
int main(){
	int a[] = { 1, 2, 3, 4 };
	vector<int> v(a, a + sizeof(a) / sizeof(int));

	vector<int>::iterator it = v.begin();
	while (it != v.end()){
		cout << *it++;
	}
	cout << endl;

	v.pop_back();
	v.pop_back();

	v.push_back(2);
	v.push_back(3);
	v.push_back(4);
	v.push_back(5);
	//使用find查找3所在的位置
	vector<int>::iterator pos = find(v.begin(), v.end(), 3);
	//插入数据,导致pos迭代器失效
	v.insert(pos, 30);
    
	pos = find(v.begin(), v.end(), 3);
	//删除数据,导致pos迭代器失效
	v.erase(pos);
	it = v.begin();
	while (it != v.end()){
		cout << *it++<<" ";
	}
	cout << endl;

	system("pause");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值