C++ Primer笔记 容器和算法(2)
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)的更多相关文章
- C++ Primer(第4版)-学习笔记-第2部分:容器和算法
第9章 顺序容器 顺序容器和关联容器 顺序容器内的元素按其位置存储和访问. 关联容器,其元素按键(key)排序. 顺序容器(sequential container). 顺序容器的元素排列次序与元素值 ...
- C++ Primer笔记6_STL之泛型算法
1.泛型算法: 大多数算法定义在头文件algorithm中.标准库还在头文件numeric中定义了一组数值泛型算法 仅仅读算法: 举例: find函数用于找出容器中一个特定的值,有三个參数 int v ...
- C++ Primer笔记
C++ Primer笔记 ch2 变量和基本类型 声明 extern int i; extern int i = 3.14;//定义 左值引用(绑定零一变量初始值,别名) 不能定义引用的引用:引用必须 ...
- 机器学习实战笔记-k-近邻算法
机器学习实战笔记-k-近邻算法 目录 1. k-近邻算法概述 2. 示例:使用k-近邻算法改进约会网站的配对效果 3. 示例:手写识别系统 4. 小结 本章介绍了<机器学习实战>这本书中的 ...
- Java基础复习笔记基本排序算法
Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...
- 算法笔记_071:SPFA算法简单介绍(Java)
目录 1 问题描述 2 解决方案 2.1 具体编码 1 问题描述 何为spfa(Shortest Path Faster Algorithm)算法? spfa算法功能:给定一个加权连通图,选取一个 ...
- C++进阶 STL(1) 第一天 [容器,算法,迭代器] string容器 vector容器 deque容器
课程大纲 02实现基本原理 容器,算法,迭代器 教室:容器 人:元素 教室对于楼:容器 序列式容器: 容器元素在容器中的位置是由进入容器的时间和地点来决定 序列式容器 关联式容器: 教室中 按年龄排座 ...
- python机器学习笔记:EM算法
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于E ...
- 算法笔记之KMP算法
本文是<算法笔记>KMP算法章节的阅读笔记,文中主要内容来源于<算法笔记>.本文主要介绍了next数组.KMP算法及其应用以及对KMP算法的优化. KMP算法主要用于解决字符串 ...
随机推荐
- 开启spring boot actuator 安全认证
通过本文配置,会对actuator 除了health外的所有端点,开启用户名密码验证,对于自己开发的接口不会要求用户名密码验证. 版本: <parent> <groupId>o ...
- scala map操作 简单总结
在函数式编程中有一个核心的概念之一是转换,所以大部份支持函数式编程语言,都支持一种叫map()的动作,这个动作是可以帮你把某个容器的内容,套上一些动作之后,变成另一个新的容器. 现在我们考虑如何用Op ...
- 查看Win系统激活状态
Win键+R调出运行框,在运行框中输入cmd slmgr.vbs -dlv winver 回车后就能看到当前系统的版本 slmgr.vbs -dli 显示:操作系统版本.部分产品 ...
- Ubuntu18.04使用adb和tcpdump对android设备进行网络调试
准备工作 1. Android设备需要root 2. 在 https://www.androidtcpdump.com/ 下载适用于Android的tcpdump可执行文件 3. 本地安装 andro ...
- Region使用全解
代码地址如下:http://www.demodashi.com/demo/14799.html 前言 Region,即为区域,它表示的是canvas图层上的某一块封闭的区域.很多时候,我们会利用Reg ...
- apache占用80端口,导致nginx启动不成功
把apache干掉,然后重启nginx就可以了
- 获取客户机的ip和mac地址
只获取clientIP package com.ppms.utils; import javax.servlet.http.HttpServletRequest; /** * Created by l ...
- HDUOJ-------单词数
单词数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- LFU缓存
https://leetcode-cn.com/problems/lfu-cache/description/ 缓存的实现可以采取多种策略,不同策略优点的评估就是"命中率".好的策 ...
- 单个APP页面支持屏幕旋转
1.info中支持所有的方向 2.APPDelega.h中添加属性 @property (nonatomic,assign) BOOL allowRotate; APPdelegate.m中实现方法 ...