双端队列deque比向量vector更有优势

vector是动态数组,在堆上

vector比array更常用

不需要变长,容量较小,用array

需要变长,容量较大,用vector

1 at()

取出下标

2 c_str()

执行

3 clear()

清空

4 erase()

根据迭代器的位置,删除元素

erase(myvector.begin() + 3)

5 fill

填充

6 find

7 find_if

8 find_if_not

9 insert()

插入元素

insert(myvector.begin() + 3, 998);//在第4个位置插入

10 pop_back()

删除最后一个元素

11 push_back()

push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

12 size()

求数组元素个数

13 sort

排序

14 swap()

交换

1 at()

取出下标

4 erase()

根据迭代器的位置,删除元素

erase(myvector.begin() + 3)

5 insert()

插入元素

insert(myvector.begin() + 3, 998);//在第4个位置插入

6 pop_back()

删除最后一个元素

7 push_back()

push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

8 size()

求数组元素个数

 #include <iostream>
#include <vector>
using namespace std; void main()
{
std::vector<int>myvector;//创建一个数组,数组元素是int类型 myvector.push_back();//尾部加入一个数据
myvector.push_back();
myvector.push_back();
myvector.push_back();
myvector.push_back(); myvector.pop_back();//删除尾部元素 for (int i = ; i < myvector.size(); i++)//遍历
{
//std::cout << myvector[i] << std::endl;//上下一样
std::cout << myvector.at(i) << std::endl;//上下一样,at()可以取出下标
}
std::cout << std::endl; //根据迭代器的位置删除
myvector.erase(myvector.begin() + );//删除第四个元素。删除第3个元素(从0开始计算的话) for (int i = ; i < myvector.size(); i++)//遍历
{
if ()
{
//可以增加查询,修改功能
}
std::cout << myvector[i] << std::endl;
}
std::cout << std::endl; myvector.insert(myvector.begin() + , );//在第三个位置前插入,新数据变成第三。在第2个位置前插入,新数据变成第2(从0开始计算的话) for (int i = ; i < myvector.size(); i++)//遍历
{
std::cout << myvector[i] << std::endl;
}
std::cout << std::endl; system("pause");
}

2 c_str()

执行

3 clear()

清空

6 pop_back()

删除最后一个元素

7 push_back()

push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

8 size()

求数组元素个数

 #include <iostream>
#include <vector>
using namespace std; void main()
{
std::vector<std::string>string1;//定义一个字符串数组 string1.clear();//clear清空 string1.push_back("notepad");//push_back尾部加入
string1.push_back("calc");
string1.push_back("mspaint");
string1.pop_back();//pop_back删除尾部元素 for (int i = ; i < string1.size(); i++)//size()长度
{
system(string1[i].c_str());//c_str执行,删除了最后一个,因此将会执行两个
} system("pause");
}

//正向迭代器iterator,begin()返回一个迭代器,它指向容器c的第一个元素,end()返回一个迭代器,它指向容器c的最后一个元素的下一个位置

//反向迭代器reverse_iterator,rbegin()返回一个逆序迭代器,它指向容器c的最后一个元素,rend()返回一个逆序迭代器,它指向容器c的第一个元素前面的位置

反向迭代器是一种反向遍历容器的迭代器。也就是,从最后一个元素到第一个元素遍历容器。反向迭代器将自增(和自减)的含义反过来了:对于反向迭代 器,++ 运算将访问前一个元素,而 -- 运算则访问下一个元素。

 #include <iostream>
#include <vector>
using namespace std; void main()
{
std::vector<std::string>string1;//创建一个字符串数组 string1.clear();//清空 string1.push_back("notepad");//尾部加入
string1.push_back("calc");
string1.push_back("mspaint"); //正向迭代器iterator,begin()返回一个迭代器,它指向容器c的第一个元素,end()返回一个迭代器,它指向容器c的最后一个元素的下一个位置
std::vector<std::string>::iterator ibegin, iend;//创建两个迭代器指针
ibegin = string1.begin();//初始化迭代器指针,数据起始点
iend = string1.end();//初始化迭代器指针,结束 for (; ibegin != iend; ibegin++)//从头到尾
{
std::string tempstr = *ibegin;//创建中间临时变量,获取指针指向的数据
system(tempstr.c_str());//执行
} //反向迭代器reverse_iterator,rbegin()返回一个逆序迭代器,它指向容器c的最后一个元素,rend()返回一个逆序迭代器,它指向容器c的第一个元素前面的位置
std::vector<std::string>::reverse_iterator rbegin = string1.rbegin();//创建迭代器指针,数据起始点
std::vector<std::string>::reverse_iterator rend = string1.rend();//创建迭代器指针,结束 while (rbegin != rend)//从尾到头
{
std::string tempstr = *rbegin;//获取指针指向的数据
system(tempstr.c_str());//执行
rbegin++;//指针移动
} system("pause");
}

7 push_back()

push_back,算法语言里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。

8 size()

求数组元素个数

//创建一个数组变量,元素是数组

vector可用于管理不规则的树状结构

国家-省-市县

 #include <iostream>
#include <vector>
using namespace std; void main()
{
std::vector<int>myvector1;//创建一个数组变量,元素是int类型
myvector1.push_back();
myvector1.push_back();
myvector1.push_back(); std::vector<int>myvector2;//创建一个数组变量,元素是int类型
myvector2.push_back(); std::vector<int>myvector3;//创建一个数组变量,元素是int类型
myvector3.push_back();
myvector3.push_back(); std::vector<std::vector<int>>allvector;//创建一个数组变量,元素是数组
allvector.push_back(myvector1);
allvector.push_back(myvector2);
allvector.push_back(myvector3); for (int i = ; i < allvector.size(); i++)//遍历
{
for (int j = ; j < allvector[i].size(); j++)
{
std::cout << " " << allvector[i][j];
}
std::cout << std::endl;
} system("pause");
}

fill

 1 #include <iostream>
2 #include <algorithm>
3 #include <vector>
4
5 template <class T>
6 class show
7 {
8 public:
9 void operator()(T &t)
10 {
11 std::cout << t << " ";
12 }
13 };
14
15 void main()
16 {
17 std::vector<int>myv;
18
19 myv.push_back(7);
20 myv.push_back(8);
21 myv.push_back(9);
22 myv.push_back(4);
23 myv.push_back(5);
24 myv.push_back(6);
25
26 fill(myv.begin() + 2, myv.end(), 10);//从下标2开始到尾部,用10填充
27
28 for_each(myv.begin(), myv.end(), show<int>());
29 }

find

 #include <iostream>
#include <vector> void main()
{
std::vector<int>myv; myv.push_back();
myv.push_back();
myv.push_back(); auto i = find(myv.begin(), myv.end(), ); if (i == myv.end())
{
std::cout << "not found" << std::endl;
}
else
{
std::cout << *i << std::endl;
}
}

sort

全部元素排序

 #include <iostream>
#include <algorithm>
#include <vector> template <class T>
class show
{
public:
void operator()(T &t)
{
std::cout << t << " ";
}
}; void main()
{
std::vector<int>myv; myv.push_back();
myv.push_back();
myv.push_back();
myv.push_back();
myv.push_back();
myv.push_back(); sort(myv.begin(), myv.end());//排序 for_each(myv.begin(), myv.end(), show<int>());
}

sort

部分元素排序

 #include <iostream>
#include <algorithm>
#include <vector> template <class T>
struct show
{
public:
void operator()(T &t)
{
std::cout << t << " ";
}
}; void main()
{
std::vector<char>myv; myv.push_back('B');
myv.push_back('A');
myv.push_back('C');
myv.push_back('Y');
myv.push_back('Z');
myv.push_back('X'); for_each(myv.begin(), myv.end(), show<char>());
std::cout << std::endl; sort(myv.begin(), myv.begin() + ); for_each(myv.begin(), myv.end(), show<char>());
std::cout << std::endl;
}

#include <vector>的更多相关文章

  1. 浅谈JSP中include指令与include动作标识的区别

    JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...

  2. Entity Framework 6 Recipes 2nd Edition(13-9)译 -> 避免Include

    问题 你想不用Include()方法,立即加载一下相关的集合,并想通过EF的CodeFirst方式实现. 解决方案 假设你有一个如Figure 13-14所示的模型: Figure 13-14. A ...

  3. error RC1015: cannot open include file 'afxres.h' 解决办法

    在为WindowsPhone8程序添加本地化的过程中遇到这个问题: 问题原因就是afxres.h文件缺失,下载它,放到VS安装目录下的VS\include目录下就可以了(选择目录的时候注意对应对版本) ...

  4. Mybatis常用总结:参数,返回,执行sql,include等

    1.参数注入1.1用#{0},#{1}的形式,0代表第一个参数,1代表第二个参数 public List<RecordVo> queryList(String workerId, Inte ...

  5. jsp中的@include与jsp:include区别详解

    1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...

  6. JSP中编译指令include与动作指令include的区别

    include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改, 否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如 ...

  7. C/C++ 中的include

    当需要使用已有的方法或库时, 可以将它们的头文件#include进来. #include会在preprocess过程中被替换成它包含的代码. 头文件中包含了需要使用的函数/变量的声明. 当然声明与定义 ...

  8. 织梦多语言站点,{dede:include filename=''/}引入问题

    织梦模板include插入非模板目录文件出现"无法在这个位置找到"错误的解决办法 以下是dede V55_UTF8 查dede include标签手册 (3) include 引入 ...

  9. PHP 站点相对包含,路径的问题解决方法(include,require)

    以前看了,很多框架,基本上很少使用相对路径包含.而一般很多做php web站点,喜欢用相对路径. 认为这样,无论目录放到那里. 只要跟另外目录关系一致.那么就不会出现问题.如果一个站点,一般都认为,如 ...

  10. 如何让include标签包裹的布局置于屏幕最下方?

    如何让一个Layout 始终在屏幕的下方 我想让<include layout="@layout/bottom" />一直在屏幕下,怎么做? 1.相对布局中用属性  a ...

随机推荐

  1. c语言字符串翻转系列

    2013-10-25 最近碰到一道笔试题,是关于字符串翻转的.题目是:将一段英文翻转,但保留单词拼写,如给定字符串str="I am a student",返回为"stu ...

  2. UIImage图片转NSData

    在Iphone上有两种读取图片数据的简单方法: UIImageJPEGRepresentation  取UIImage的JPEG格式的NSData UIImagePNGRepresentation.  ...

  3. Visual Studio Code和Docker开发asp.net core和mysql应用

    Visual Studio Code和Docker开发asp.net core和mysql应用 .net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对 ...

  4. Unix/Linux环境C编程入门教程(20) 搭建基于Mac的 Xcode 与 QT 开发环境

    1.启动 Vmware,如果没有 VMware 的同学,请看前面我们搭建 VMware 的视频 2.打开虚拟机以后,出现虚拟机界面 3 新建一个虚拟机 4 选择自定义,单击下一步 5 选择默认的 VM ...

  5. Java调用Lua脚本(LuaJava使用、安装及Linux安装编译)

    依赖包(附件有下载): 包名 类型 操作系统 luajava-1.1.jar jar ALL libluajava-1.1.so .so linux luajava-1.1.dll .dll wind ...

  6. iOS 开发的几种手势

    今天为大家介绍一下IOS 的七种手势,手势在开发中经常用到,所以就简单 通俗易懂的说下, 话不多说,直接看代码: // 初始化一个UIimageView UIImageView *imageView ...

  7. 13-7-1 做了一个360优化大师的主页(就是一个主页UI)

    模仿360优化大师做了一个下它的首页.   代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...

  8. android 的线程模型和AsyncTask

            android 的线程模型:当一个 android 的应用运行后,就会有一个 UI 的 main 线程启动 , 这是一个非常重要的线程,它负责把事件分派到相应的控件,其中就包括屏幕绘图 ...

  9. kobox: key_proc.c -v1 怎样使用proc文件系统调试驱动

    使用proc文件系统能够非常方便调试驱动.查看驱动中的一些数据 平台:TQ2440 系统版本号: root@ubuntu:/mnt/shared/kobox# uname -a Linux ubunt ...

  10. mysql-5.7.10-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法

      总结报错原因:在my.init文件下新增data目录(datadir = F:\mysqldata ) 最新解压版本的mysql 解压安装的时候报错D:\mysql\mysql-5.7.10-wi ...