向量的基本使用方法

 基本操作方法:

一、创建对象的方法:

1、指定容器大小:
vector<元素类型>对象名(容器大小);

vector<int> v1(10);//创建一个容量大小为10的int类型容器v1
vector<string> v2(5);//创建一个容量大小为5的string类型容器

2、指定初始值
vector<元素类型>对象名(容器大小,元素初始值);

vector<int> v1(10, 1); //10个元素的值都为1
vector<string> v2(3, 'aaa'); //3个元素的初始值都为“aaa”

3、列表初始化(带不带“ = ”都可以)
vector<int> v1{ 10,1 };   //v1有两个元素:10,1
vector<int> v2 = { "a","b","c" };  // v2有三个元素分别是字符串:"a","b","c"

4、初始化状态为空
vector<int> v1;    //创建一个int类型的空对象

5、用对象来初始化一个容器:
vector<int> v1(10, 1);
vector<int> v2(v1);  //用v1来初始化v2
vector<int> v3 = v2;  //用v2数组给v3数组赋值
一、获取容量和大小:
v.capacity();    //获取容量
v.size();        //获取大小

二、赋值函数(调用vector的函数成员assign()来赋值:
v.assign(n, elem);//将n个elem元素赋值给容器
v, assign(begin, end);//将[begin,end)区间中的元素赋值给容器

三、访问容器中的元素
1、下标法:
v1[i];
2、成员函数法:
v.at(int idx);

四、从尾部插入和删除元素
v.push_back(type elem& t);
v.pop_back();

五、获取头部和尾部的元素
v.front();
v.back();//分别返回容器头尾元素的引用

v.begin();
v.end();// 分别为返回第一个和最后一个元素的迭代器

六、插入和删除元素
v.insert(pos, elem);//在pos位置上插入元素elem返回新数据 的位置
v.insert(pos, n, elem);//在pos位置上插入n个elem元素,无返回值
v.insert(pos, begin, end); 在pos位置上插入[begin, end)区间的数值无返回值

erase()用于移除容器中的元素
v.erase(pos);  //移除pos位置上的元素,返回下一个数值的位置
v.erase(begin, end);//移除[begin,end)区间的元素,返回下一个元素的位置

向量的更多成员函数:

创建一个vector容器,然后调用push_back()函数向尾部添加元素,接着调用pop_back()函数移除末尾的元素代码:

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int> v;
	for (int i = 0; i < 10; i++)
		v.push_back(i + 1);
	for (int i = 0; i < 10; i++)
		cout << v[i] << " ";
	cout << endl;
	v.pop_back();
	for (int i = 0; i < 9; i++)
		cout << v[i] << " ";
	cout << endl;
	system("pause");
	return 0;
}

输出结果:

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<char> v;
	v.insert(v.begin(), 'a');//在头部位置插入元素
	v.insert(v.begin(), 'b');
	v.insert(v.begin(), 'c');
	v.insert(v.begin() + 1, 5, 't');//在begin()+1位置插入5个t元素
	for (int i = 0; i < 8; i++)
		cout << v[i] << " ";
	cout << endl;
	cout << "erase elemes:\n";
	v.erase(v.begin() + 1, v.begin() + 6);//删除区间中的5个元素
	for (int i = 0; i < 5; i++)
		cout << v[i] << " ";
	cout << endl;
	system("pause");
	return 0;
}

运行结果:

向量成员函数运用举例:

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<int> v1(3, 6); //整形向量容器元素是6,6,6
	cout << v1.size() << "\n";

	for (vector<int>::size_type i = 0; i < v1.size(); i++)//size_type是无符号整形(此行是通过下标访问元素)
		cout << v1[i];
	cout << "\n";

	for (vector<int>::iterator it1 = v1.begin(); it1 != v1.end(); it1++)
		cout << *it1;//通过迭代器访问元素
	cout << "\n";

	vector<char> v2;
	v2.push_back('C');
	v2.push_back('D');
	v2.push_back('A');
	v2.push_back('E');

	for (vector<int>::size_type i = 0; i < v2.size(); i++)//size_type是无符号整形(此行是通过下标访问元素)
		cout << v2[i];
	cout << "\n";

	vector<char>::iterator it2;//定义字符型迭代器对象,it
	it2 = v2.begin() + 2;  //it指向第三个元素
	v2.insert(it2, 'i');  //在It指向的位置插入i

	for (vector<int>::size_type i = 0; i < v2.size(); i++)//size_type是无符号整形(此行是通过下标访问元素)
		cout << v2[i];
	cout << "\n";


	system("pause");
	return 0;
}

运行结果:

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值