
C++
文章平均质量分 87
包括STL及一些常用头文件
Happig丶
我的孤独,虽败犹荣
展开
-
STL之bitset
简介bitsetbitsetbitset说白了就是010101数组,或者说是010101字符串,然后赋予了整体的一些位运算等操作。bitsetbitsetbitset是以位为单位存的,空间复杂度较低,bitsetbitsetbitset的操作都可以看做是常数时间复杂度,经常用于优化代码。构造函数无参构造。bitset<32> b;传入intintint参数,将该数的二进制保存在bitsetbitsetbitset中。bitset<32> b(16);传入01010原创 2021-03-05 19:55:22 · 217 阅读 · 0 评论 -
STL之multiset
前言multisetmultisetmultiset和setsetset唯一的区别是前者为可重集,后者为不可重集,相同之处是二者都能根据特定的排序原则将元素排序,同理插入和删除的复杂度都是lognlognlogn构造multiset<T> st; //构造一个空的可重集multiset<T,cmp> st; //构造一个采用cmp排序方式排列的可重集常用操作查找count(x); //返回元素值为x的个数find(x); //返回第一个元素值为x的迭代器位置原创 2020-08-12 17:22:26 · 118 阅读 · 0 评论 -
C++大数BigInt
前言一直在用板子,然后考虑到有些细节还不是很清楚,就整理一下吧。然后没有按板子来写,但是思想基本一致,因为我的板子是每四位合并成一位,也就是将大数看做一个100001000010000进制数构造和输出大数一位位地输入比较慢,因此一般采用字符串输入,然后将字符串转化为大数注意需要从后向前存,运算时从前向后运算,输出时从后向前输出const int maxn=1005;struct BigInt{ int a[maxn]; int len; BigInt(){ len=1原创 2020-07-24 16:18:54 · 2903 阅读 · 5 评论 -
C++ cstring常用函数
前言本来不打算使用cstring,而转型C++STL的string了。但是最近写题string超时,思路是没错的。估计string确实是在做大量字符串操作时没有字符数组效率高。但是字符数组好久没用,在此复习一下输入输出gets(char *s)读取字符串,当且仅当遇到回车才作为字符串结束符。因此它能接受字符缓冲区的回车,需要注意char a[30]; //保证大小大于输入长度int ...原创 2020-03-16 11:08:43 · 2566 阅读 · 1 评论 -
STL之list
listlist实际上是一个双向链表结构的线性容器,它支持在任意位置插入和删除,但是不支持任意位置的直接访问,只能通过头部迭代器一个个查找构造函数list<T> List; //构造一个空的listlist<T> List(n,x) //构造一个大小为n,且全部元素都初始化为xlist<T> a=b; //构造一个和b一样的list&l...原创 2020-02-28 19:27:10 · 113 阅读 · 0 评论 -
C++ math(常用)
计算次幂的函数:以e为底:double exp (double x);float exp (float x);long double exp (long double x);double exp (T x); // additional overloads for integral types求x的y次方double pow (double base, ...原创 2020-01-27 21:21:12 · 1455 阅读 · 0 评论 -
C++ string
string类库及其函数在程序中使用string类型,必须包含头文件 <string> (注意不是cstring),string只是单纯的字符串,末尾没有’\0’构造和析构函数string s;string s(str) //str赋值给sstring s("....") //将C字符串作为s的初值string s(num,c) //生成一个字符串,包含num...原创 2020-01-27 16:58:35 · 205 阅读 · 0 评论 -
C++ unique()函数
头文件#include <algorithm>使用前一定要先将无序的列表排序,使重复的元素相邻原理该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素PS:这里的去除并非真正意义的erase,而是将重复的元素放到容器的末尾,返回值是去重之后的尾地址函数的返回值为开始重复的第一个元素举例int数组a[7](排过序的):1,1,2,3,3,3,6使用过uniq...原创 2020-01-26 23:38:58 · 213 阅读 · 0 评论 -
C++之sstream
sstream<sstream>库中声明的标准类可以通过传入的数据类型判断需要哪些转换,自动选择所必需的转换。而且转换结果保存在stringstream对象的内部缓冲中。我们不必担心缓冲区溢出,因为这些对象会根据需要自动分配存储空间sstream库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入/输出...原创 2020-01-26 23:33:01 · 274 阅读 · 0 评论 -
STL之stack
stackstack(栈)又名堆栈,它是一种特殊的线性表。仅能在表尾进行插入和删除操作的线性表。和queue相比,栈像压入弹夹的子弹一样,满足“先进后出”的规则头文件#include <stack>声明stack<T> s;操作函数把元素a加入入栈:s.push(a);删除栈顶的元素:s.pop();返回栈顶的元素:s.top();判...原创 2020-01-26 23:23:24 · 263 阅读 · 0 评论 -
STL之set
setset集合是C++ STL库中自带的一个容器,set具有以下两个特点:set中的元素都是排好序的set集合中没有重复的元素常用操作:begin() 返回set容器的第一个元素的地址end() 返回set容器的最后一个元素地址clear() 删除set容器中的所有的元素empty() 判断set容器是否为空max_si...原创 2020-01-26 23:06:58 · 172 阅读 · 0 评论 -
STL之queue、deque、priority_queue
queuequeue与stack非常相似,但是不同的是queue是先进先出,而stack是先进后出定义queue对象的:queue<int>q1;queue<double>q2;queue的基本操作有:入队:如q.push(x); 将x元素接到队列的末端出队:如q.pop(); 弹出队列的第一个元素,并不会返回元素的值访问队首元素:如q.f...原创 2020-01-26 22:58:25 · 192 阅读 · 0 评论 -
STL之pair
pair的简介pair是将2个数据合成一组数据,如STL中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first,second 因为pair使用的是struct不是class,所以无需申明头文件便可以直接使用pairpair的构造创建一个空的pair对象,它的两个元素分...原创 2020-01-26 21:47:39 · 121 阅读 · 0 评论 -
STL之map
mapC++中map提供的是一种键值对容器,里面的数据都是成对出现的,如下图:每一对中的第一个值称之为关键字(key),每个关键字只能在map中出现一次;第二个称之为该关键字的对应值(value)。且其key是自动按升序排列的。初始化的map中,数据类型均有默认值map基本函数begin() //返回指向map头部的迭代器clear() //删除所有元素count()...原创 2020-01-22 23:58:46 · 238 阅读 · 0 评论 -
STL之vector
可变数组vectorvector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。vector的数据安排及操作方式与array非常相似,唯一的差别在于array是静态空间,一旦配置了就不能改变;vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素使用vector之前,必须包含相应的头文件和命名空间:#include <vector>using...原创 2020-01-22 17:22:52 · 213 阅读 · 0 评论