5分钟入门C++
0.概述:
C++发源于面向过程的C,变化如下:
- 面向对象内容1:引入STL库,方便数据结构如栈、队列、hashtable的建立、插入、删除以及排序、组合等泛型算法,
- 面向对象内容2:引入类的概念,operator可自定义隐藏内部实现的接口函数(不做介绍)
- 新增new和free等等函数标准化内存的动态内存分配与销毁
- 关于键盘/文件读取,set iostream变量&cin/cout操作
- 字符串与数据变量的转化——stoi(),stoa(),atoi()…function
1.顺序容器(vector+封装而来的stack,queue)
- vector a;
- vector与C中数组类似,元素还可是char,结构体,指针等任意变量
- 元素:a.front()=首元素,a.back()=尾元素,a.begin()=首指针,a.end()=尾指针之后,a.size()
- 操作:like array,vector只能在尾部插入push_back(element),删除pop_back(element),
插入,删除可在任意位置,显然要移动其后的一系列元素,复杂度=O(n);
容器间赋值 ,a.assign(b.begin(),b.begin()+3);
- stack尾进尾出,queue尾进头出,push(),pop(),top()
2. 常用泛型算法_变量类型均为迭代器/指针
sort(a,begin(),a.end());//排序
reverse(a.begin(),a.end());//翻转
find_first_of(a.begin(),a.end(),target);//查找
3. 关联容器(map,set)*(unordered(哈希结构–看不懂的红黑树),const)
map[key]=value;
所以map的遍历只能用迭代器,- 迭代器遍历输出map严格按照key字典序,unordered_map则不然
map.push(pair=makepair(key,value)/{key,value});
pair is a new variable type- map,set用insert(element),erase(key)函数来取代push,pop,因为本身按照哈希映射是无序的
4. 天女散花
- 分配动态内存:ListNode* head=new ListNode(value);
- 引用 :不是指针,起C语言中指针的作用,还有const &,
int &b=a;//b与a为同一对象的不同名称,故b改变,a亦改变,
- lambda表达式——new自定义运算符:
sort(list.begin(),list.end(),[](T a,T b,...)->{return function});
11111111111111111111111111111111111输入值11111111111111输出 - 字符串:
string a=b+'a';
<—组合string c=b.substr(b.begin(),b.end()-1);
<-截取
愿偿少年泪,犹趁未老时!
本文来自博客园,作者:clfire,转载请注明原文链接:https://www.cnblogs.com/sky1water/p/16720548.html