erase 删除后  返回的是删除元素的后一个迭代器位置

int main()
{
//怎样正确的删除全部元素 循环
int a[]={1,2,3,4,5,6,7,8,9};
vector<int> v(a,a+6);
for(vector<int>::iterator it=v.begin();it!=v.end();)
{
it=v.erase(it);
}
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
{
cout<<*it<<endl;
}
cout<<v.size()<<endl;
getchar();
return 0;
}

重置元素和交换元素





c.swap(c2)





c.assign(b,e)





c.assign(n,t)  (迭代器不能是指向c的)





容器能够自己主动增长





像vector这样的增长代价比list要大





capacity()和reserve()





通常会预留比size大的空间,当不得不又一次分配内存时候,会加倍当前容量的分配策略

也能够手动reserve(size) 分配





deque能够随机訪问

String s4(s3.begin(),s3.end())

适配器

 

1.       Stack<int> stack(deq)‘

Stack,queue都基于deque实现

2.       Priority_queue 基于vector实现

s.empty()

s.size()

s.pop()

s.top()

s.push(item)

队列

q.empty()

q.size()

q.pop()

q.front()

q.back()

q.top()

q.push()

关联容器

 

Map与set

 

Map:key-value

Set:一个key

Multimap:同一个键多次出现的map类型

Multiset:同一个键多次出现的set类型

 

1.Pair 类型

创建与初始化:  pair<string,string> p;

p.first 第一个元素  p.second 第二个元素

又一次生成:  pair<string,string>next;

Next=make_pair(first,last);

也支持直接赋值

Next.first=xx.   Next.second=xx;

2.关联容器:

2.1 map

Map<ISBN,sales> bookstore;

Map<k,v>::key_type , mapped_type,value_type(pair类型)

C++ Primer笔记 容器和算法(2)的更多相关文章

  1. C++ Primer(第4版)-学习笔记-第2部分:容器和算法

    第9章 顺序容器 顺序容器和关联容器 顺序容器内的元素按其位置存储和访问. 关联容器,其元素按键(key)排序. 顺序容器(sequential container). 顺序容器的元素排列次序与元素值 ...

  2. C++ Primer笔记6_STL之泛型算法

    1.泛型算法: 大多数算法定义在头文件algorithm中.标准库还在头文件numeric中定义了一组数值泛型算法 仅仅读算法: 举例: find函数用于找出容器中一个特定的值,有三个參数 int v ...

  3. C++ Primer笔记

    C++ Primer笔记 ch2 变量和基本类型 声明 extern int i; extern int i = 3.14;//定义 左值引用(绑定零一变量初始值,别名) 不能定义引用的引用:引用必须 ...

  4. 机器学习实战笔记-k-近邻算法

    机器学习实战笔记-k-近邻算法 目录 1. k-近邻算法概述 2. 示例:使用k-近邻算法改进约会网站的配对效果 3. 示例:手写识别系统 4. 小结 本章介绍了<机器学习实战>这本书中的 ...

  5. Java基础复习笔记基本排序算法

    Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...

  6. 算法笔记_071:SPFA算法简单介绍(Java)

    目录 1 问题描述 2 解决方案 2.1 具体编码   1 问题描述 何为spfa(Shortest Path Faster Algorithm)算法? spfa算法功能:给定一个加权连通图,选取一个 ...

  7. C++进阶 STL(1) 第一天 [容器,算法,迭代器] string容器 vector容器 deque容器

    课程大纲 02实现基本原理 容器,算法,迭代器 教室:容器 人:元素 教室对于楼:容器 序列式容器: 容器元素在容器中的位置是由进入容器的时间和地点来决定 序列式容器 关联式容器: 教室中 按年龄排座 ...

  8. python机器学习笔记:EM算法

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于E ...

  9. 算法笔记之KMP算法

    本文是<算法笔记>KMP算法章节的阅读笔记,文中主要内容来源于<算法笔记>.本文主要介绍了next数组.KMP算法及其应用以及对KMP算法的优化. KMP算法主要用于解决字符串 ...

随机推荐

  1. Jenkins的安装(最为简单的安装方法)

    1.Jenkins的安装(最为简单的安装方法) (1)下载Jenkins(一个war文件) (2)cmd运行:java -jar jenkins.war [Jenkins需要IDK1.5以上的版本] ...

  2. RHEL7-Samba共享测试

    Linux<----->windows之间共享 Samba使用2个进程 smb    ip之间的通信用smb  (tcp)       nmb    主机名之间的通信用nmb (netbi ...

  3. 百度云盘下载插进-油猴Tampermonkey

    Tampermonkey是一款免费的浏览器扩展程序,有百度云网盘的下载嗅探脚本,一键获取下载地址! 01.搭梯子 访问gchrome的商店,搜索Tampermonkey,添加Tampermonkey ...

  4. Win10激活KMS2.0

    目前,发现的唯一能激活Window10的纯净版. 下载地址: http://pan.baidu.com/s/1bpvMRBx 好孩子看不见: http://pan.baidu.com/s/1bo8xP ...

  5. 动态规划处理diff算法 Myers Diff (正向)

    Eugene W. Myers 在他1986年发表于"Algorithmica"的论文"An O(ND) Difference Algorithm and Its Var ...

  6. Map的深浅拷贝的探究

    1. 复制map示例 首先看一个例子,当我使用不同方法将一个源map拷贝到另一个map后,改变源map,复制后的map理应不受影响 import java.math.BigDecimal; impor ...

  7. ios 协议分析

    1 基本用途 可以用来声明一大堆方法(不能声明成员变量) 只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明 只要父类遵守了某个协议,就相当于子类也遵守了 2 格式 协议的编写 @pro ...

  8. 1 时间戳 2 C# 如何生成一个时间戳 3 js 时间加一分钟... 4 js string->date 5 js 取得当天0点 / 23:59:59 时间

    var str = 'Jan 23, 2019 10:25:47 AM';var strnow = new Date(str); 时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经 ...

  9. python练习笔记——面试题 F(n) = F(n-1)+F(n-2)

    已知:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) 其中(n≥2,n∈N*) 求:求10以内的函数值分别是多少 方法一: def F(n): if n < ...

  10. php执行多个存储过程

    2014年3月18日更新: 从以前的使用原生代码来看,只需要将结果集关闭即可,即 $this -> queryID -> close(); . // 使用mysqli方式,修改DbMysq ...