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. 开启spring boot actuator 安全认证

    通过本文配置,会对actuator 除了health外的所有端点,开启用户名密码验证,对于自己开发的接口不会要求用户名密码验证. 版本: <parent> <groupId>o ...

  2. scala map操作 简单总结

    在函数式编程中有一个核心的概念之一是转换,所以大部份支持函数式编程语言,都支持一种叫map()的动作,这个动作是可以帮你把某个容器的内容,套上一些动作之后,变成另一个新的容器. 现在我们考虑如何用Op ...

  3. 查看Win系统激活状态

    Win键+R调出运行框,在运行框中输入cmd slmgr.vbs -dlv winver            回车后就能看到当前系统的版本 slmgr.vbs -dli 显示:操作系统版本.部分产品 ...

  4. Ubuntu18.04使用adb和tcpdump对android设备进行网络调试

    准备工作 1. Android设备需要root 2. 在 https://www.androidtcpdump.com/ 下载适用于Android的tcpdump可执行文件 3. 本地安装 andro ...

  5. Region使用全解

    代码地址如下:http://www.demodashi.com/demo/14799.html 前言 Region,即为区域,它表示的是canvas图层上的某一块封闭的区域.很多时候,我们会利用Reg ...

  6. apache占用80端口,导致nginx启动不成功

    把apache干掉,然后重启nginx就可以了

  7. 获取客户机的ip和mac地址

    只获取clientIP package com.ppms.utils; import javax.servlet.http.HttpServletRequest; /** * Created by l ...

  8. HDUOJ-------单词数

    单词数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  9. LFU缓存

    https://leetcode-cn.com/problems/lfu-cache/description/ 缓存的实现可以采取多种策略,不同策略优点的评估就是"命中率".好的策 ...

  10. 单个APP页面支持屏幕旋转

    1.info中支持所有的方向 2.APPDelega.h中添加属性 @property (nonatomic,assign) BOOL allowRotate; APPdelegate.m中实现方法 ...