c++常用函数/操作

本文详细介绍了C++中的常用操作,包括数组长度的获取、字符串截取、哈希表(unordered_map和unordered_set)的使用、栈的操作、数值比较、auto关键字的应用以及pair的使用方法。此外,还讲解了vector容器的基本操作,如插入、排序、获取元素以及反转。这些内容是C++编程中不可或缺的基础知识。
摘要由CSDN通过智能技术生成

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。

构造函数:

  1. pair<T1, T2> p1; //创建一个空的pair对象(使用默认构造),它的两个元素分别是T1和T2类型,采用值初始化。
  2. pair<T1, T2> p1(v1, v2); //创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v1,second成员初始化为v2。
  3. make_pair(v1, v2); // 以v1和v2的值创建一个新的pair对象,其元素类型分别是v1和v2的类型。
  4. p1 < p2; // 两个pair对象间的小于运算,其定义遵循字典次序:如 p1.first < p2.first 或者 !(p2.first < p1.first) && (p1.second < p2.second) 则返回true。
  5. p1 == p2; // 如果两个对象的first和second依次相等,则这两个对象相等;该运算使用元素的==操作符。
  6. p1.first; // 返回对象p1中名为first的公有数据成员
  7. 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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值