2019.12.16--2019.12.22 第五周 关于C++的零零散散(只是自留)
cin&cout
- 输入到文件末尾,语句: while(cin>>a)
- cin输入可以自动刷新缓冲区
- cout 的专用回车:endl
- 输入字符串带空格即止,如果要输入带空格的字符串,用gets(),若输入的是string类型字符串str,则getline(cin,str),输入空格用getchar()
- 速度慢,高效输入输出还是要用 scanf 和 printf ,循环中也尽量少用cin cout
string
- 这是个数据类型,此数据类型的字符串与其它变量一样,都可以用 = 赋值,用==,!= 来比较大小,用+往后加东西,甚至可以用 > < 来按字典序比较大小。基本上其它类型变量能做的它也都可以
- string类型字符串既可以当作一个整体的string类型变量,又可以作为一个char类型数组,char[]能做的它也都能做,cstring里的库函数也都能用
- 最初定义时无空间,不可直接初始化。
- 最终输入完后同样自动加’\0’
- 以下str全部为字符串名,可以替换为a,b,duohereshui等自定义名字
str.size() 返回值为字符串长度 - str.begin() , str.end() 分别为指向首尾元素的指针
- str.empty()返回值为bool类型,判断是否为空
- str.clear() 清空字符串
- str.swap(str1) 交换两字符串的值,括号中参数为另一字符串名,不可为常量
- str.substr(index,num) 返回值为str的一个字串,下标为index的字符作第一个,向后num个字符
- str.erase(index,num) 将下标为index的字符作为第一个,向后删num个 ;str.erase(index) 删除从下标index向后的所有字符
- str.insert(index,str1) 将str1从index插入(index为插入的str1的第一个字符的下标)
sort
- 默认从小到大排序,此时可省略comp函数
- 只可排连续内存的一串变量,例如数组。不可排链表
- 若要从大到小排,则自定义comp函数:
bool comp(int a,int b)//可以是其它数据类型
{return a>b;
}
- 还可以设置排序的第一参考值,第二参考值等等(类似excel里的排序?)
bool comp(point a,point b)
{if(a.x!=b.x)return a.x>b.x;//按x降序else return a.y<b.y;//按y升序
}
algorithm
- reverse颠倒序列
(1)reverse(str.begin(),str.end());颠倒string类型字符串
(2)reverse(a,a+m);颠倒数组 - swap 交换的两个必须为同一数据类型的变量
- lower_bound与upper_bound 必须查找顺序序列,得到的是第一个大于等于所查找数的位置和第一个大于所查找数的位置
用法:lower_bound(address1,address2,element)address1,address2分别为查找的起止位置,element为要查找的元素
lower_bound(address1,address2,element)-address1 为元素下标
upper_bound(address1,address2,element) - lower_bound(address1,address2, element)为你所查找的元素的总个数
若找不到:返回address2+1 - binary_search 看数组中是否存在查找的值,若不存在,返回值为true or false
用法: binary_search(address1,address2,element) - unique 删除相邻的重复元素
用法: unique(address1,address2)
函数默认值
函数定义时,可在参数表中添加默认值,这样传参时可以不传它,注意,无默认值的参数一定要在有默认值的参数右边,否则会造成编译错误。
pair
- 头文件:utility
- 格式:pair < type1 ,type 2> ;这样这个整体为一个新的数据类型,可以typedef一下把它的名字改了,方便打
- pair第一个元素first,第二个second,整个pair可以比较大小,先first,后second
vector
- vector< type > 可以理解为 定义一个装有type型数据的容器, 这个整体是个新的数据类型
- 也可以和数组一个用法
- 最初定义时无内存,往里面添加东西需要push_back,不可直接赋值,也可以在最初定义时就写上(n)表示给n个空间,例如vector< int > vec(n)。有空间后可以赋值但无法改变空间大小;
- 引用
typedef vector<int> vi;
void sum(vi &x)
{}
int main()
{vi vec;sum(vec);
}
将vec数组传进函数,重新起名为x进行运算,改变x后vec也发生变化。但是不拷贝,比一般传参要快
5. v2.resize(v1.size()) 将v2的大小变得和v1一样,不过可能切断原序列
6. begin,end含义同string,front,back为指针
7. sort 可以直接为vector 内元素排序
格式sort(vec.begin(),vec.end(),comp)
map
- #include< map>
- map<type1,type2> 定义一个type1到type2的映射,type1不可重复,type2为实值可以重复
- map<char,int> m;
m[‘c’]=1; - for(auto x:m){}语句
x为一个数据类型可变的东西,依次遍历m中的元素,直到结尾。比如x可以在第一次循环中做m[1],第二次循环中作m[2]
auto的含义是数据类型可根据变量发生变化,可以int,可以double等等
memset
初始化函数,格式为memset(num,sizeof(int),n)
第一个参数为需要初始化的数组
第二个参数为初始化的字节数
第三个参数为十六进制数或一个字符,是要初始化成的东西
注意数少时才这么用。数组元素过多时还是挨个赋值更节省时间
2019.12.16--2019.12.22 第五周 关于C++的零零散散(只是自留)相关推荐
- 【STM32CubeMx】学习记录(基于微雪教程)(2019/2/16——2019/2/23完结)
教程学习网址:http://www.waveshare.net/study/article-666-1.html 2019/2/16 STM32CubeMx系列教程 1-3 2019/2/17 STM ...
- 第五周学习总结-HTML5
2018年8月12日 暑假第五周,我把HTML剩余的一些标签和用法看完了并学了一些HTML5的标签及用法. HTML5比HTML多了一些元素,也删去了一些元素. HTML5新增元素 图形元素 < ...
- 【今日CV 计算机视觉论文速览】Tue, 12 Mar 2019
今日CS.CV计算机视觉论文速览 Tue, 12 Mar 2019 Totally 50 papers Interesting: SARA基于深度强化学习用艺术笔触渲染图片,使得机器可以学会解构图片, ...
- 【今日CV 计算机视觉论文速览 第99期】Fri, 12 Apr 2019
今日CS.CV 计算机视觉论文速览 Fri, 12 Apr 2019 Totally 50 papers ?上期速览 ✈更多精彩请移步主页 Interesting: ?DBPN基于深度方向传播的图像超 ...
- 18天精读掌握《费曼物理学讲义卷一》 第12天 2019/6/28
18天精读掌握<费曼物理学讲义卷一> 第12天 2019/6/28 1. 18日掌握<费曼物理学讲义>卷一计划概览 2. 今日学习成果 3. 今日时间表 4.Atimelogg ...
- [软件自动修复领域] 前沿论文阅读(2019年8月12日)
文章目录 前言 论文列表 Automated Program Repair: A Step towards Software Automation Getafix: Learning to fix b ...
- 梦幻诛仙 修改服务器时间,《梦幻诛仙手游》2019年3月12日14:00~19:00数据互通公告...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 亲爱的少侠: 为了给每一位少侠提供更好的游戏体验,让少侠们享受更多乐趣,挑战和结识更多志同道合的伙伴,梦幻诛仙手游响应大家的呼声,结合各服务器具体情况,逐 ...
- 七牛云:2019年云综合收入 12.5亿元,不再是CDN代表
云排名分析:七牛云,2019年云综合收入 12.5亿元. 虽然阿里巴巴在2017年10亿元投资了七牛云,但是七牛云没有直接并入阿里云旗下,而是一直独立运营. 在CDN领域中,2019年的市场变化很 ...
- 侍魂微信第一个服务器,侍魂手游2019年4月12日微信问答试炼答案
原标题:侍魂手游2019年4月12日微信问答试炼答案 爱心榜前30名可以获得什么限时称号?(回答格式为:SH+答案,如答案是莉姆酱,则回复SH莉姆酱)这是侍魂手游2019年4月12日微信问答试炼每日一 ...
最新文章
- Android-去除Button默认边框
- Java设计模式(二十三):访问者设计模式
- 安装linux桌面总结
- 智能家居(工厂模式)
- 解决问题的能力 10倍程序员
- 电脑打字手指正确姿势_洞箫的演奏姿势和动作
- 华为服务器存储系列,华为 服务器 存储相关资料(示例代码)
- 一篇彻底搞懂jsp内置对象
- MyBatis 源码自我解读
- 第2章[2.2] Ext JS多类型终端-电脑、移动端(手机、平板)
- Python之pyclipper使用
- java标识符的介绍_Java标识符所有关键字
- android游戏开发框架libgdx环境搭建
- 怎么下载安装Firebug和使用Firebug
- 多种方法对网页文字进行快速复制(仅供学习使用,勿践踏他人成果)
- js日历控件html,第11款插件:jquery.jCal.js显示日历插件
- CAD三维图自动生成三视图
- C语言算法扩散墨水,66行C语言计算器,别忘了下载TC编译器!
- appium 报错:Original error:Could not proxy command to remote server. Original error:socket hang up解决办法
- linux服务器上tcp有大量time_wait状态的解决方法和原因解释
热门文章
- mysql语言中取季度_mysql按年度、季度、月度、周、日统计查询的sql语句
- 信号归一化功率_大功率集总参数衰减器的稳定性分析
- CAS单点登录-配置中心(三)
- 1024程序员节,琪琪酱来送祝福啦!!
- 瑞吉外卖(3)—菜品分类管理
- 详解ADC芯片的发展以及应用领域
- UCanCode发布升级E-Form++可视化源码组件库2018全新版 !
- 【对讲机的那点事】玩对讲机?想好了再下手,不了解入手要吃亏!
- 第37届ACM全球总决赛入围高校名单
- 电机马达DSP28335 永磁同步电机代码 CCS编辑,有PI控制算法、速度电流双闭环控制。 有方波有感无感算法,无感为3段反电势过零点