【每日总结】2021-2-4

本文介绍了2021年2月4日的学习总结,涉及C++基础知识,如iostream流、命名空间、数组与常量、布尔类型、引用、字符串操作、结构体、模板、STL的排序与集合等内容,并重点讲解了vector和基本数据结构在实践中的应用。
摘要由CSDN通过智能技术生成

【每日总结】2021-2-4

学习时间:5h
学习内容:c++与STL入门

笔记

输入输出流iostream
优点:不需要占位符,避免输入输出的类型和占位符不统一。
缺点:速度慢
加速方法:关闭和stdio的同步,即调用ios::sync_with_stdio(false)。
命名空间namespace
Using namespace std

声明数组时,数组大小可以使用const声明的常数
Bool值,true表示真,false表示假

引用

Void swap2(int &a,int t&b)
{
    int t=a;a=b;b=t;
}

在参数名之前加一个“&”符号,就表示这个参数按照传引用的方式传递。这样,在函数内改变参数的值,也会修改到函数的实参。(c++中的引用就是变量的”别名“,可以在一定程度上代替指针。)
String类型:
支持流式读写,可以像整数那样“相加“,有很多方便的函数和运算符,但速度较慢。
结构体:
不再需要使用typedef的方式定义一个struct,而且在struct里面除了可以有变量之外还可以有函数。
模板:
没看懂。。。。。
STL:c++的标准模板库
排序与检索:
algorithm头文件中的sort可以给任意对象排序,包括内置类型和自定义类型,前提是类型定义了“<”运算符。排序之后可以用lower _bound查找大于或等于的第一个位置。待排序/查找的元素可以放在数组里,也可以放在vector里。
不定长数组:vector:
若a是一个vector,可以用a.size()_读取它的大小,a.resize()改变大小,a.push_back()向尾部添加元素,a.pop_back()删除最后一个元素。
vector需要用vector<int>a或者vector<double>b这样的方式来声明一个vector。可以直接赋值,还可以作为函数的参数或返回值,而无需像数组那样另外用一个变量指定元素个数。
集合:set
每个元素最多只出现一次。和sort一样,自定义类型也可以构建set,但必须定义小于运算符。
映射:map
Map就是从键到值的映射。因为重载了[]运算符,map像是数组的“高级版“。例如可以用map<string,int>month_name来表示”月份名字到月份编号“的映射,然后用month_name[“July”]=7这样的方式赋值。Map也称为”关联数组“。
栈:stack
定义:stack<int>s
Push()入栈,pop()出栈,top()取栈顶元素但不删除。
队列:queue
定义:queue<int>s
Push()入队,pop()出队,front()取队首元素但不删除。
优先队列:
定义:priority_queue<int>pq
默认越小的整数优先级越低。

庚子年 春 怀化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值