c++--vector容器(动态扩展数组)


void printVector(vector<int>& v)
{
	for (vector<int>::iterator it = v.begin();it != v.end();it++)
		cout << (*it)<<" ";//it类似指针 
		
	cout << endl;
}

 

	//默认无参构造
	vector<int> v1;

	for (int i = 0;i < 10;i++)
		v1.push_back(i);

	printVector(v1);

	//区间拷贝构造
	vector<int> v2(v1.begin(), v1.end());
	printVector(v2);

	//n个element方式构造
	vector<int> v3(10, 100);//传入10个100
	printVector(v3);

	//拷贝构造
	vector<int> v4(v3);
	printVector(v4);
	

	
	//赋值操作
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i);
	printVector(v1);

	//等号赋值操作
	vector<int> v2;
	v2 = v1;
	printVector(v2);

	//assign赋值
	vector<int> v3;
	v3.assign(v2.begin(), v2.end());
	printVector(v3);
	//assign n个相同元素赋值
	vector<int> v4;
	v4.assign(10, 99);
	printVector(v4);
	

	
	//容器的容量和大小操作
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i);
	printVector(v1);

	if (v1.empty())  //为真代表容器为空
		cout << "v1空" << endl;
	else
		cout << "v1不为空" << endl;
	
	cout << "v1的容量为" << v1.capacity() << endl;
	cout << "v1的大小为" << v1.size() << endl;
	
	v1.resize(15,10);//重新指定大小,可指定默认填充值
	printVector(v1);
	cout << "v1的容量为" << v1.capacity() << endl;
	cout << "v1的大小为" << v1.size() << endl;
	
	v1.resize(5);
	printVector(v1); //重指定变短了,则会删除后面多的数据
	

	
	//容器的删除和插入//
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i); //尾插法插入数据
	printVector(v1);

	//尾删法
	v1.pop_back(); //删除末尾的元素
	printVector(v1);

	//插入
	v1.insert(v1.begin(), 100); //再开始处插入100 第一个参数是迭代器
	printVector(v1);

	v1.insert(v1.begin(),2,1000); //再开始处插入2个1000 第一个参数是迭代器
	printVector(v1);

	v1.insert(v1.begin()+2, 2, 5 ); //再第三个元素处插入2个5 第一个参数是迭代器
	printVector(v1);

	//删除
	v1.erase(v1.begin()); //删除头的第一个元素
	printVector(v1);

	v1.erase(v1.begin(),v1.end()); //删除所有元素 输出会变成换行
	printVector(v1); 
	


	
	//vector容器中数据获取//
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i); 
	
	//利用[]方式访问数组中元素
	for (int i = 0;i < v1.size();i++)
		cout << v1[i] << " ";
	cout << endl;

	//利用at方式访问元素
	for (int i = 0;i < v1.size();i++)
		cout << v1.at(i)<<" ";
	cout << endl;

	//获取第一个元素
	cout << "第一个元素为: " << v1.front() << endl;
	//获取最后一个元素
	cout << "最后一个元素为: " << v1.back() << endl;
	

	//vector 互换容器//
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i);
	printVector(v1);

	vector<int> v2;
	for (int i = 10;i >0;i--)
		v2.push_back(i);
	printVector(v2);

	cout << "交换后容器数据" << endl;

	v1.swap(v2); //v1与v2进行交换
	printVector(v1);
	printVector(v2);
void test02()
{
	vector <int> v;
	for (int i = 0;i < 100000;i++)
		v.push_back(i);
	cout << "v的容量 : " << v.capacity() << endl;
	cout << "v的大小 : " << v.size() << endl;

	//重新指定大小
	v.resize(3);
	cout << "v的容量 : " << v.capacity() << endl;
	cout << "v的大小 : " << v.size() << endl;

	vector<int>(v).swap(v); //利用swap收缩空间 (v)这样创建相当于匿名对象,拷贝v元素的内容
	cout << "v的容量 : " << v.capacity() << endl;
	cout << "v的大小 : " << v.size() << endl;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章