vector是C++标准库STL中的一个重要的类模板,相当于一个更加健壮的,有很多附加能力的数组

使用vector前首先要包含头文件

#include<vector> 

1.vector的常用操作:

vector < int > vector_1(size)    //创建一个数组vector_1,长度为size

vector<int> vector_2(vector_1)    //创建一个数组vector_2,并把vector_1中所有元素复制过去

vector<int> vector_3(vector_1.begin(),vector_1.begin()+N)
//创建一个数组vector_3,并把vector_1中前N个元素复制过去

vector < int > vector_4(size,num)    //创建一个数组vector_1,长度为size,初始化元素为num

vector.resize(size);    //重新设置数组大小为size

vector.front()   //返回数组首元素 

vector.back()    //返回数组尾元素 

vector.begin()   //获取数组头指针 

vector.end()     //获取数组尾指针 

vector.size()    //返回数组的长度 

vector[i]        //访问数组的第i-1个元素

vector.insert(vector.begin()+N,elem);	//在数组的第N个元素后插入元素elem. 

vector.push_back(elem); //在数组的最后一个元素后插入一个元素elem. 

vector.erase(vector.begin()+M,vector.begin()+N);
//删除数组的第M个到第N个元素

vector.pop_back(); //删除数组的最后一个元素 

vector.clear();	//清空数组中的元素 

vector.empty();  //判断数组是否为空,若为空返回true,不为空返回false

例:


/**********
*Author:Pug_
*Time:2019-3-1 22:00:45
*Version:1.0
*FUnction:Use of vector
***********/
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdio>
#include <cstdlib>

//首先要包含头文件
#include<vector>
using namespace std;

int main(){

	//vector是一个可存放任意类型数据的动态数组
	//数据类型除了int类型还可为其他的类型 ,size可为一个常量或变量
	//初始化后向量integer中默认值为0;
	int size = 10;
	vector < int > integers(size); 

	//复制向量integer,复制为integers1
	vector<int> integers1(integers);

	//复制向量integer前5个元素,复制为integers2
	vector<int> integers2(integers.begin(),integers.begin()+5);

	//创建 integers3长度为size,默认值为1
	vector < int > integers3(size,1);

	integers.front();//获取首元素
	integers.back();//获取尾元素 

	integers.begin();//获取头指针
	integers.end(); //获取尾指针 

	//获取向量 integers的长度
	cout<<"integers的长度:"<<integers.size()<<endl;

	//通过下标读取元素
	for(int i = 0;i<integers.size();i++){
		cout<<setw(4)<<integers[i];
	}

	//通过下标输入元素
	for(int i = 0;i<integers.size();i++){
		cin>>integers[i];
	}

	//在 integers的第n个元素后插入元素123.
	int n = 1;
	integers.insert(integers.begin()+n,123);

	//在integers的最后一个元素后插入一个元素 123.
	integers.push_back(123); 

	//删除integers的第m个到第n个元素 (第1个到第3个)
	int m = 1;
	n = 3;
	integers.erase(integers.begin()+m,integers.begin()+n);

	//删除integers的最后一个元素
	integers.pop_back(); 

	//清空 integers中的元素
	integers.clear();

	//返回integers是否为空,若为空返回1,不为空返回0
	integers.empty();  

	return 0;
}

2.使用vector 创建二维数组

vector< vector<int> > matrix_vector(SIZE_ROW, vector<int> (SIZE_COL));

//创建一个二维数组,行数为SIZE_ROW,列数为SIZE_COL.
/**********
*Author:Pug_
*Time:2019-3-14 22:00:45
*Version:1.0
*FUnction:Use of 2 d vector
***********/
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdio>
#include <cstdlib>

#include <vector>
using namespace std;
int main(){

	//创建一个3行3列数组
	vector< vector<int> > v2d(3, vector<int> (3));

	//赋值
	for(int i = 0;i<v2d.size();i++){
		for(int j = 0;j<v2d[0].size();j++){
			v2d[i][j] = i*v2d[0].size()+j;
		}
	}

	//输出
	for(int i = 0;i<v2d.size();i++){
		for(int j = 0;j<v2d[0].size();j++){
			cout<<setw(5)<<v2d[i][j];
		}
		cout<<endl;
	}
	cout<<endl<<endl;

	//将二维数组重新设置行列数
	//先重新设置行数再重新设置列数
	v2d.resize(8);
	for(int i = 0;i<v2d.size();i++){
		v2d[i].resize(8);
	}

	//赋值
	for(int i = 0;i<v2d.size();i++){
		for(int j = 0;j<v2d[0].size();j++){
			v2d[i][j] = i*v2d[0].size()+j;
		}
	}

	//输出
	for(int i = 0;i<v2d.size();i++){
		for(int j = 0;j<v2d[0].size();j++){
			cout<<setw(5)<<v2d[i][j];
		}
		cout<<endl;
	}

	return 0;
}

C++标准库类模板vector的更多相关文章

  1. C++标准库类模板(stack)和 队列(queue)

    在C++标准库(STL)中有栈和队列的类模板,因此可以直接使用 1.栈(stack):使用栈之前,要先包含头文件 : #include<stack> stack.push(elem); / ...

  2. C++ 标准库类型-String,Vector and Bitset

    <C++ Primer 4th>读书摘要 最重要的标准库类型是 string 和 vector,它们分别定义了大小可变的字符串和集合.这些标准库类型是语言组成部分中更基本的那些数据类型(如 ...

  3. C++ Primer学习笔记2--c++标准库中的 vector、string 和 bitset 类型

    一.string    #include <string>  using std::string    初始化函数:    string s1;        默认构造函数 s1 为空串 ...

  4. 标准库类型之vector

    上篇中遗留了一个小作业,就是用string中的find_first_not_of和find_last_not_of函数来实现字符串左右空格的去除,先来完成它,实现的思路是先来编写去除左空格,然后再编写 ...

  5. 发布一个stl标准库容器类(vector/list)的安全删除方法

    话不多说,看代码. #include <functional> #ifndef ASSERT #include <cassert> #define ASSERT assert ...

  6. ZT 类模板Stack的实现 by vector

    *//*第3章 类模板 与函数相似,类也可以被一种或多种类型参数化.容器类就是一个具有这种特性的典型例子,它通常被用于管理某种特定类型的元素.只要使用类模板,你就可以实现容器类,而不需要确定容器中元素 ...

  7. 谈谈两种标准库类型---string和vector

    两种最重要的标准库---string和vector string和vector是两种最重要的标准库类型,string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列. 一.标准库 ...

  8. C++primer第三章标准库类型

    除第二章介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类型标准库. 本章将介绍标准库中的 vector.string 和 bitset 类型. string 类型支持长度可变的字符串 v ...

  9. Go标准库之html/template

    html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容.它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用html/templ ...

随机推荐

  1. Centos6 hadoop2.6.0安装笔记

    系统环境: linux:Centos6-64bit hadoop:hadoop2.6.0 jdk:1.6.45 集群方式安装 一台master,3台slave master 192.168.111.1 ...

  2. 使用jQuery 取文本

    <html> <head> <meta charset="UTF-8"> <title>b</title> <sc ...

  3. SuSE Linux上修改主机名

    1) 临时修改主机名 临时修改使用hostname即可,格式为:hostname 新主机名.Hostname命令除可以临时修改主机名外,还可以用它来查看主机名,不带参数执行它,即为查看主机名. 2)  ...

  4. 编写高质量代码改善C#程序的157个建议——建议89:在并行方法体中谨慎使用锁

    建议89:在并行方法体中谨慎使用锁 除了建议88所提到的场合,要谨慎使用并行的情况还包括:某些本身就需要同步运行的场合,或者需要较长时间锁定共享资源的场合. 在对整型数据进行同步操作时,可以使用静态类 ...

  5. 风尘浪子 只要肯努力,梦想总有一天会实现 WF工作流与Web服务的相互调用 —— 通过Web服务调用Workflow工作流(开发持久化工作流) _转

    如果你曾经负责开发企业ERP系统或者OA系统,工作流对你来说一定并不陌生.工作流(Workflow)是对工作流程及其各操作步骤之间业务规则 的抽象.概括.描述.工作流要解决的主要问题是:为实现某个业务 ...

  6. jQuery制作多表格固定表头、切换表头的特效

    做了好几天的固定表头特效,总算是搞定了.先说明一下基本功能:我们在一个网页上浏览很多份表格数据的时候,肯定会碰到很多分不清表头,也分不清表 格是哪个的情况,这个时候我们就希望能有一种功能,就是我们再下 ...

  7. sql添加列,删除列,修改列

    有时候,当数据库里面有数据了,再到设计器里面删除列,就删不掉.只能用代码删除. alter table tableName drop column columnName 添加列 ) 修改列 ) --修 ...

  8. C#中匿名函数、委托delegate和Action、Func、Expression、还有Lambda的关系和区别

    以前一直迷迷糊糊的,现在总算搞明白. Lambda表达式 Lamda表达式基本写法是()=>{ };Lambda和方法一样都可以传入参数和拥有返回值.(int x)=>{return x; ...

  9. C# Pinvoke判断是UEFI模式还是BIOS模式

    [DllImport("kernel32.dll", SetLastError = true)] public static extern UInt32 GetFirmwareEn ...

  10. NOIP前刷题记录

    因为本蒻实在太蒻了...对于即将到来的NOIP2018ssfd,所以下决心要把自己近期做过的题目(衡量标准为洛谷蓝题难度或以上)整理一下,归归类,简单地写一下思路,就当作自己复习了吧qwq 本随笔持续 ...