vector 基础
http://classfoo.com/ccby/article/jnevK
Vector的存储空间是连续的,list不是连续存储的
vector初始化
vector<int>v; //不能使用下标索引赋值,因为还没有空间
vector<int>v1(, -);//初始化10个,初值为-1 int a[] = { , , , };
vector<int>v2(a, a + );
如果先定义,后赋值,使用assign
vector<int> foo1(, );
vector<int> foo2;
vector<int> foo3;
vector<int> foo4;
//foo1.assign(7, 100); // 填充赋值(1),将7个值为100的整数赋值给foo1
std::vector<int>::iterator it;
it = foo1.begin() + ;
foo2.assign(it, foo1.end() - ); // 范围赋值(2),将foo1中不包括头尾的元素赋值给foo2 int fooarray[] = { , , };
foo3.assign(fooarray, fooarray + ); //范围赋值同样适用于数组
foo4.assign({ , , , }); // 初始化列表赋值(3)
添加、删除、插入、清空、交换
vector <int>a;
a.push_back(); //在末尾加一个元素 size+1
a.pop_back(); //删除最后一个元素,size-1
---------------------------------------------------------------------
std::vector<int> foo1(3, 9);
std::vector<int> foo2(3, 9);
std::vector<int> foo3(3, 9);
std::vector<int>::iterator it;
// single element (1)
it = foo1.begin();
foo1.insert(it, 11); // {11,9,9,9}
// fill (2)
it = foo2.begin();
foo2.insert(it, 2, 7); // {7,7,9,9,9}
// range (3)
int fooarray[] = { 1, 2, 3, 4, 5 };
it = foo3.begin();
foo3.insert(it, fooarray + 1, fooarray + 4); // { 2,3,4,9,9,9}
---------------------------------------------------------------------
// 移除第2个元素
foo3.erase(foo3.begin() + 1);//{2,4,9,9,9}
// 移除前三个元素
foo3.erase(foo3.begin(), foo3.begin() + 3);//{9,9}
foo3.clear();//清空
------------------------------------------------
std::vector<int> foo(3, 100);
std::vector<int> bar(5, 200);
foo.swap(bar);
遍历
std::vector<int> foo(5);
std::vector<int>::reverse_iterator rit = foo.rbegin();
int i = 0;
for (rit = foo.rbegin(); rit != foo.rend(); ++rit)
*rit = ++i;
for (unsigned i = 0; i<foo.size(); i++)
std::cout << ' ' << foo[i];
for (std::vector<int>::iterator it = foo.begin(); it != foo.end(); ++it)
std::cout << ' ' << *it;
std::cout << std::endl;
vector 基础的更多相关文章
- vector基础
//STL基础 //容器 //vector #include "iostream" #include "cstdio" #include "vecto ...
- vector基础操作
//vector< T> vec; //构造一个名为vec的储存数据类型为T的动态数组.其中T为需要储存的数据类型 //初始时vec为空 //push_back 末尾添加一个元素 //po ...
- vector 基础2
size :返回有效元素个数 max_size :返回 vector 支持的最大元素个数 resize :改变有效元素的个数 capacity :返回当前可使用的最大元素内存块数(即存储容量) ...
- 66)vector基础总结
基本知识: 1)vector 样子 其实就是一个动态数组: 2)vector的基本操作: 3)vector对象的默认构造 对于类 添加到 容器中 要有 拷贝构造函数---> 这个注意 ...
- Android Vector曲折的兼容之路
Android Vector曲折的兼容之路 两年前写书的时候,就在研究Android L提出的Vector,可研究下来发现,完全不具备兼容性,相信这也是它没有被广泛使用的一个原因,经过Google的不 ...
- java数据结构-Vector
1 Vector基础实现为数组 object[] synchronized线程安全 2 扩容使用 System.arraycopy(original, 0, copy, 0,Math.min(ori ...
- C++【vector】用法和例子
/*** * vector 基础api复习 * 8 AUG 2018 */ #include <iostream> #include <vector> using namesp ...
- Faster-RCNN tensorflow 程序细节
tf-faster-rcnn github:https://github.com/endernewton/tf-faster-rcnn backbone,例如vgg,conv层不改变feature大小 ...
- [Java] 集合框架原理之一:基本结构与源码分析
一.Collection Collection 接口定义了一些基本的方法: int size(); boolean isEmpty(); boolean add(E e); boolean addAl ...
随机推荐
- YII2.0 用GII创建视图文件后访问404
使用GII的CRUD Generator创建searchModelClass 和控制器类文件,视图文件后,访问控制器地址后出现404的情况. 创建过程如图所示 后来发现是控制器类 Controller ...
- Python入门学习笔记4:他人的博客及他人的学习思路
看其他人的学习笔记,可以保证自己不走弯路.并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958 ...
- Fragment保持状态切换
在使用Activity管理多个Fragment时,每次切换Fragment使用的是replace,结果导致出现xxx is not currently in the FragmentManager异常 ...
- P1346 电车(dijkstra)
P1346 电车 题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能).在每个路口 ...
- RHCE7认证学习笔记17——KickStart安装系统
一.自动化安装系统工具 1.Cobbler 另一个自动化安装工具: 2.Kickstart 二.使用kickstart自动化安装系统 服务器安装的软件: 1.dhcp服务 [root@lin ...
- java Vector向量
9.3.4 Vector向量 [专业IT培训机构,真正零首付入学www.bjsxt.com] Vector底层是用数组实现的List,相关的方法都加了同步检查,因此“线程安全,效率低”. 比如,ind ...
- 「日常训练」 Soldier and Cards (CFR304D2C)
题意 (Codeforces 546C) 按照指定的规则打牌,问谁胜或无穷尽. 分析 又是一条模拟,用set+queue(这里手写了)处理即可.注意到两种局势"1 234"和&qu ...
- SpriteKit游戏开发适配iPad/iPhone6/7/8/Plus及iPhoneX的尺寸及安全区域
未适配前:Ball球超过屏幕的上下方 适配后:Ball球就在屏幕的可视范围内运动了 一.那么如何适配不同的iPhone.iPhoneX及iPad的屏幕尺寸呢? 我们开发一个App的时候, 通常希望 ...
- Ubuntu18.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook深度学习环境配置
目录 一.Ubuntu18.04 LTS系统的安装 1. 安装文件下载 2. 制作U盘安装镜像文件 3. 开始安装 二.设置软件源的国内镜像 1. 设置方法 2.关于ubuntu镜像的小知识 三.Nv ...
- Linux shell 整数运算 let [ ] (( )) expr以及 浮点数 bc用法(转)
Abstract : 1) Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算:2)Linux shell 中使用 expr 与 b ...