欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++ STL篇之 vector容器 vector的一些基本操作

程序员文章站 2022-03-22 22:42:04
...

本篇仅为学习笔记

下面的代码是本篇文章的主要内容

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

int main()
{
	vector<int>t1;
	vector<int>t2(10);
	vector<int>t3(10, 5);
	int i[5] = { 1, 2, 3, 4, 5 };
	vector<int>t4(i,i + 2);
	vector< vector<int> >t5;
	vector<int>v;
	v.push_back(100);
	for (int i = 1; i <= 10; i++)
	{
		v.push_back(i);
	}
	v.pop_back();
	v.insert(v.begin(), 99);
	v.insert(v.begin(), 5, 88);
	vector<int>k(2, 50);
	v.insert(v.begin(), k.begin(), k.end());
	printf("test\n");
	v.erase(v.begin());
	v.erase(v.begin(), v.begin() + 4);
	cout << v.size() << endl;
	cout << v.capacity() << endl;
	for (vector<int>::iterator it=v.begin(); it != v.end(); it++)
	{
		cout << *it << ' ';
	}
	cout << endl;
	v.clear();
	cout << v.max_size() << endl;
	return 0;
}

如果会可以直接跳过全文.

--------------------------------------------
STL,中文名:标准模板库.

-------------------------------------------

vector容器,可简单理解为动态数组

头文件:#include<vector>

vector容器的定义:

(type为类型,如int,char,struct...)

(val为一个值,由类型决定)

vector<type>v;

vector<type>v(size);

vector<type>v(size,value);

type a[size]={val,val1,val2,...};   vector<type>v(a,a+常数);

vector< vector<type> > v;

    代码实例:
    vector<int>t1;
	vector<int>t2(10);
	vector<int>t3(10, 5);
	int i[5] = { 1, 2, 3, 4, 5 };
	vector<int>t4(i,i + 2);
	vector< vector<int> >t5;

vector容器的基操(基本操作)

vector<type>v;

尾插:v.pushback(val);

尾删:v.popback();

插入:v.insert(pos,val);

v.insert(pos,num,val); //num为插入的数量

vector<type>v2;   v.insert(v.begin(),v2.begin(),v2.end());  //实现了把v2拷贝进v

删除: v.erase(pos);

v.erase(pos,pos2);

容器大小:v.size();

容器操作时最大开辟的空间 :  v.capacity();

遍历整个容器:

vector<type>::iterator it;

for(it=v.begin();it!=v.end();it++)

{

cout<<*it<<endl;//这里的it叫做迭代器,很像指针,第一行代码可以类比指针的定义

}

清空整个容器:v.clear();

vector能开辟的最大空间: v.max_size();

重新设置容器:v.assign();

重新设置容器大小:v.resize();//容器五个元素 重设大小为4 去掉最后一个元素

访问:v.at(num);//num为元素下标

代码实例:    
    vector<int>v;
	v.push_back(100);
	for (int i = 1; i <= 10; i++)
	{
		v.push_back(i);
	}
	v.pop_back();
	v.insert(v.begin(), 99);
	v.insert(v.begin(), 5, 88);
	vector<int>k(2, 50);
	v.insert(v.begin(), k.begin(), k.end());
	printf("test\n");
	v.erase(v.begin());
	v.erase(v.begin(), v.begin() + 4);
	cout << v.size() << endl;
	cout << v.capacity() << endl;
	for (vector<int>::iterator it=v.begin(); it != v.end(); it++)
	{
		cout << *it << ' ';
	}
	cout << endl;
	v.clear();
	cout << v.max_size() << endl;
	vector<int>v2(8, 8);
	v.assign(v2.begin(),v2.end());
	v.clear();
	for (int i = 1; i <= 5; i++)
	{
		v.insert(v.end(),i);
	}
	v.resize(4);
    cout << v[1] << endl;
	cout << v.at(3) << endl;