-
c语法可以在c++中用,输入scanf和输出print效率比cin和cout快,算法题中时间超过的可以试试他们,做简单题时,cin和cout更方便
-
c++的STL标准模板库,很多leedcode题用得到。c++标配:using namespace std;以及return 0;
-
scanf和printf在stdio.h里,cin和cout在iostream里
-
cin>>n是传值进n,所以是>>。cout同理
-
endl转行等同于’n’
-
c++使用c头文件格式:#include
(相当于c去掉.h) -
bool值为true和false,也可判断数字,非0则true
-
const定义常量,也定义数据类型
-
相较于c用char[]处理字符串,c++使用string(和java一样,但s不用大写),注意string只能用cin和cout
cin读字符串以空格为分隔符,读整行字符串(带空格)可用getline,用法getline(cin,s)
substr截取子串,用法string s1 = s.substr(a,b) //从下标a开始,b个字符,无b表示到最后一个
-
c++定义struct后,使用不要再写struct(类比class类)
-
c++定义数组vector(动态数组)(c用int arr[],不能随意改变长度),头文件#include
可以直接分配大小,也可以resize定义,不需要初始化默认为0
-
用法vector
v1(a,b)//a是数组大小,b是给每个元素复制 末尾加元素v1.push_back(i) -
迭代器遍历访问(vector,set,都一样),v1.begin()指向第一个元素的指针,v1.end()指向最后一个元素的后一个位置。
使用:for(auto it = v1.begin();it != v1.end;it++)访问用cout<<*it
-
-
#include
判断字母isalpha© (包括⼤写、⼩写) ⼩写字⺟islower© 大写字⺟isupper©
字⺟⼤写⼩写+数字isalnum© (space和 t) isblank © ( space 、 t 、 r 、 n )isspace©
大写转小写tolower© 小写转大写toupper©
-
c++容器:vector,stack,queue,map,set.均可用.size获取大小,.length也可以写成.size
-
集合set中元素不同,set会按从小到大排(调用#include
) - 用法:set
s 插入s.insert(1) 输出第一个*(s.begin())
查找is.find(i) != s.end() 删除is.erase(i)
unordered_set会省去set中按大小排序,刷题超时可以考虑(调用#include
) 其他用法和set相同
- 用法:set
-
映射map是键值对,按键从小到大排序(调用#include
-
用法map
m //string为键,int为值 赋值m["hello"] = 2 //key为hello,value为2 访问valuem["hello"]
迭代器输出键it->first 输出值it->second 最后一个元素m.rbegin()
unordered_map会省去map中按键值排序,刷题超时可以考虑(调用#include
) 其他用法和map相同
-
-
栈同ds(调用#include
) 定义 stack
s 进栈s.push() 访问栈顶元素s.top() 移除栈顶元素s.pop() -
队列同ds(调用#include
) 定义 queue
q 进队列q.push() 访问队首元素q.front() 访问队首元素q.back() 移除队首元素q.pop()
-
位运算bitset(调用#include <
) -
sort(调用#include )
使用sort(v.begin(), v.end()) //默认从小到大
可使用cmp设置排序规则sort(v.begin(), v.end(),cmp)
bool cmp(int a, int b) {return a > b;} //从大到小 注:只能是>或者<
cmp可以使用结构体指定排序规则
-
c++11实用技巧
auto x 自动推断变量类型 set
::iterator it(迭代器声明可以用auto it) for循环(遍历整个数组方便) 修改数组元素值需要&i
for (int i : arr) cout << i << endl; //遍历整个数组,并输出每个元素
to_string (调用 #include
stoi 将字符串转化为int
stod 将字符串转化为double



