C++的vector的使用方法

vector

c++的vector的使用方法,创建,初始化,插入,删除等。

#include "ex_vector.h"

#include <iostream>
#include <vector>
#include <string>
using namespace std;

void ex_vector01_main()
{

	//#######################################################################################
	//初始化vector的方法
	vector<int> v1;									//v1是一个空vector,它的潜在元素是int类型的,执行默认初始化
	vector<int> v2(v1);								//v2包含v1所有元素的副本
	//这里尝试先给v1添加元素,后看看v2是什么情况
	vector<int> v22 = v1;							//等价于v2(v1),v2包含v1所有元素的副本
	vector<float> v3(10, 11.0);						//v3包含10个重复的元素,每个元素的值都是11
	vector<int> v4(10);								//v4包含了10个重复执行了值初始化的对象
	vector<string> v5{ "a","b","cc","d" };			//v5包含了4个元素
	vector<string> v55 = { "a","b","cc","d" };		//等价于v5{ "a","b","cc","d" };

	//#######################################################################################
	//初始化使用圆括号和花括号的区别
	//使用圆括号是,提供的值是用来构造vector对象的
	//使用花括号是,想用列表初始化vector对象的,初始化过程会尽可能的把花括号内的值当做是元素的初始
	//  值的列表来处理,只有在无法执行列表初始化的时候才会尽可能的考虑其他初始化的方式
	vector<int> va1(10);	//va1有10个元素,每个值都是0
	vector<int> va2{ 10 };	//va2有1个元素,该元素的值是10

	vector<int> va3(10, 1);	//va3有10个元素,每个的值都是1
	vector<int> va4{ 10,1 };//va4有两个元素,值分别是10,1

	vector<string> va5{ "hi" };		//列表初始化:va5有一个元素
	//vector<string> va6("hi");		//错误,不能使用字符串字面值构建vector对象
	//这种就是不使用花括号内的值来初始化对象
	vector<string> va7{ 10 };		//va7有10个默认初始化的元素
	vector<string> va8{ 10,"hi" };	//va8有10个值为"hi"的元素

	//#######################################################################################
	//向vector中添加元素
	//最常见的一种方式就是先定义一个空的vector,然后当运行时在逐一添加。
	vector<int> vb1(2, 100);
	for (int i = 0; i < 10; i++)
	{
		vb1.push_back(i);//依次把整数数值添加到vb2的末尾
	}

	if (vb1.empty())
	{
		cout << "vb1 is empty" << endl;
	}
	else
	{
		cout << "第一种循环方法:"<<endl;
		cout << "vb1 have " << vb1.size() << " elements" << endl;
		for (int i = 0; i < 10; i++)
		{
			cout << vb1[i] << ", ";
		}
		cout<<endl;
		cout << "第二种循环方法:"<<endl;
		for(int &i:vb1)
			cout<<i<<", ";
		cout<<endl;
		for(auto &i:vb1)
			cout<<i<<", ";
		cout<<endl;
	}

}

更多内容详见我的个人主页:

国内主页

国外主页

posted @ 2020-07-25 22:15  xutopia  阅读(393)  评论(0编辑  收藏  举报