Jianghc's Blog

Back

写在前面的#

  在华为这快一年的时间,先后也参加了几场可信考试,这里对我之前常用的相关函数,stl容器,进行了整理,后面如果有时间的话还会继续更新的。

编程过程中的常用头文件#

常用库系列
#include <stdio.h>
#include <iostream>
#include <iomainip>
#include <fstream>
#include <algorithm>
#include <numeric>    包含一些常用的数值计算的工具

C风格库延续
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <cstring>
#include <ctime>

STL容器相关
#include <string>
#include <stack>
#include <queue>
#include <deque>    双向队列
#include <set>
#include <map>
#include <vector>
#include <list>

C++11扩展
#include <turple>    对pair的强化
plaintext

std标准库下的相关函数及其操作(#include )#

  • atoi(const char* str) 将一串字符串转换为int型
  • atof(const char* str) 将一串字符串转换为double型
  • abs(int n) 取绝对值
  • fill(v.begin(), v.end(), value)
  • sort() 时间复杂度n*logn的排序算法,默认升序
  • max(int a, int b) 取最大值
  • max(int a, int b) 取最小值
  • stoi() string类型字符串转换为int型
  • stod() string类型字符串转换为double型
  • to_string() 重载方法,将一些整形,浮点型转换为string类型的字符串
  • strcmp(char* str1, char * str2) 比较两个字符串,前一个小,返回<0, 前一个大返回>0, 否则返回0
  • strcpy(char* destination, char * source) 将后一个字符串拷贝到前一个字符串
  • isalnum() 判断一个字符是不是alphanumeric, 即大小写英文字母或者是数字
  • isalpha() 判断一个字符是不是alphabetic, 即英文字母
  • isdigit() 判断一个字符是不是数字
  • tolower() 将大写转换为小写
  • toupper() 将小写转换为大写

STL容器相关#

C++ STL(标准库模板)是一套功能强大的C++模板类,提供了通用的模板类和函数,C++标准模板库的核心包括一下三个组件:

  • 容器(Containers):容器是用来管理某一类对象的集合。C++提供了各种不同类型的容器,比如deque,list,vector,map等
  • 算法(Algorithms):算法作为容器。他们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。
  • 迭代器(iterators):迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集,这三个组件都带有丰富的预定义函数,帮助我们通过简单方式处理复杂的任务

STL常用容器#

  • vector
  • stack
  • set
  • queue
  • list
  • map
  • string
  • deque
  • priority_queue: 优先队列

容器的主要操作有:#

  • 容器的初始化
  • 元素的插入
  • 元素的删除
  • 查询相关元素
  • 遍历整个容器
  • 统计元素的个数
  • 检查容器是否为空

vector#

构造函数:#
  • stack stkT 采用模板类实现,stack对象的默认构造形式
  • stack(const stack& stk): 拷贝构造函数
常用赋值比较操作:#
  • v1 == v2
  • v1 != v2
  • v1 <= v2
  • v1 >= v2
  • v1 < v2
  • v1 > v2
常用方法:#
  • assign():对vector中的元素赋值
  • at():返回指定位置的元素
  • back():返回最后一个元素
  • insert():插入元素到vector中
  • begin():返回首元素迭代器
  • end():返回最末位置的迭代器(实际指向最末元素的下一个位置)
  • capacity():返回vector所能容纳的元素的数量(在不重新分配内存的情况下)
  • clear():返回指定位置的元素
  • empty():返回最后一个元素
  • erase():返回首元素迭代器
  • front():返回最开始的元素
  • get_allocator:返回vector的内存分配器
  • max_size():返回vector所能容纳的元素的最大数量(上限)
  • pop_back():弹出最后一个元素
  • push_back():在vector最后添加一个元素
  • rbegin():返回vector尾部的逆向迭代器
  • rend():返回vector起始的逆向迭代器
  • reserve():设置vector最小的元素容纳数量
  • resize():改变vector元素数量的大小
  • size():返回vector元素数量的大小
  • swap():交换两个vector

stack#

堆栈实现了一个先入后出(FILO)的数据结构

构造函数:#
  • stack stkT 采用模板类实现,stack对象的默认构造形式
  • stack(const stack& stk): 拷贝构造函数
常用方法:#
  • size():返回栈中的元素的个数
  • top():返回栈顶的元素(新加入的元素)
  • pop():弹出栈顶元素(删除)
  • push(x):向栈顶后添加元素x
  • empty():在栈为空时返回true

set#

集合中以一种特定的顺序保存唯一的元素,本身自带去重功能,自带键值排序(标准数据类型)
构造函数:

C++ 代码书写常用函数总结(持续更新)
https://525511.xyz/blog/c-%E4%BB%A3%E7%A0%81%E4%B9%A6%E5%86%99%E5%B8%B8%E7%94%A8%E5%87%BD%E6%95%B0%E6%80%BB%E7%BB%93-%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0
Author Haochen Jiang
Published at May 27, 2021
Comment seems to stuck. Try to refresh?✨