C++常用操作
常用函数
求一个数组的长度
例如![在这里插入图片描述](https://img-blog.csdnimg.cn/229cd9fa17784eb98178e019eb8d3e9e.png)
求一个字符串中的指定字符段
例如求string str=“maozucai”中的“mao”
可以采用函数substr(),即 str.substr(0,3)
![在这里插入图片描述](https://img-blog.csdnimg.cn/deba08ec703d4574a7a7581c7c4bb25d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rKJ6buY55qE5pmo5pyo,size_19,color_FFFFFF,t_70,g_se,x_16)
哈希表
1.哈希映射:
- 定义:unordered_map<int,int> myMap 括号内分别为键和键值
- 判断哈希表是否为空:myMap.empty()
- 哈希表中的元素个数:myMap.size()
- 插入元素a:myMap.insert(a)
- 查找键a: myMap.count(a) 返回0或1
- 某个key对应的value值:myMap[key]
- value的初始值默认是0
2.哈希集合:
- 定义:unordered_set<> mySet 括号内为元素类型,以mySet为例
- 插入元素a:mySet.insert(a)
- 查找元素a:mySet.count(a) 返回0或1
- 删除元素a:mySet.erase(a)
- 判断mySet是否为空: mySet.empty()
- 求mySet中的元素个数: mySet.size()
- 清空mySet:mySet.clear()
栈
C++中可以用 Stack<int> st 来定义一个栈st
常用操作:入栈: st.push(a)
出栈:st.pop()
查看栈顶元素值:st.top()
判断栈是否为空:st.empty()
取两个数中的较大的数
max()函数可用于取最大数,如 int a=max(b,c)
a就是b,c中的大数
auto关键字
auto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型,例如:int a=5; auto k; k=a; //k自动转化为int类型
pair用法
pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second。
构造函数:
- pair<T1, T2> p1; //创建一个空的pair对象(使用默认构造),它的两个元素分别是T1和T2类型,采用值初始化。
- pair<T1, T2> p1(v1, v2); //创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v1,second成员初始化为v2。
- make_pair(v1, v2); // 以v1和v2的值创建一个新的pair对象,其元素类型分别是v1和v2的类型。
- p1 < p2; // 两个pair对象间的小于运算,其定义遵循字典次序:如 p1.first < p2.first 或者 !(p2.first < p1.first) && (p1.second < p2.second) 则返回true。
- p1 == p2; // 如果两个对象的first和second依次相等,则这两个对象相等;该运算使用元素的==操作符。
- p1.first; // 返回对象p1中名为first的公有数据成员
- p1.second; // 返回对象p1中名为second的公有数据成员
Vector容器
以vector< int > vec 为例:
vec.push_back(a) :向vec的末尾插入元素a。
vec.empty():判断vec是否为空。
vec.insert(vec.begin()+i,a):向vec第i+1个位置插入a。
sort(vec.begin(),vec.end()):将vec的元素从小到大排序
vec.size():返回vec的数组长度
vec.front():返回vec的第一个元素
vec.back():返回vec的最后一个元素
reverse:翻转字符串,数组,容器
reverse函数功能是逆序(或反转),多用于字符串、数组、容器。头文件是#include
reverse函数用于反转在[first,last)范围内的顺序(包括first指向的元素,不包括last指向的元素),reverse函数无返回值
eg.
string str=“hello world , hi”;
reverse(str.begin(),str.end());//str结果为 ih , dlrow olleh
vector v = {5,4,3,2,1};
reverse(v.begin(),v.end());//容器v的值变为1,2,3,4,5
取绝对值
对于整数
abs();
对于浮点数
fabs();