摘要:
链表容器,数据进行链式存储 链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的,链表由一系列结点组成,每个节点由一个是存储数据元素的数据域和存储下一个结点地址的指针域组成,链表有单向链表,双向链表,循环链表,STL标准模板库(Standard Tem 阅读全文
posted @ 2022-05-08 22:57
纸包鱼
阅读(47)
评论(0)
推荐(0)
摘要:
先进先出的数据结构,队列类 队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为 入队 push队列中出数据称为 出队 pop 功能描述:栈容器常用的对外接口 构造函数:queue<T> que; //queue采用模板类实现,q 阅读全文
posted @ 2022-05-08 22:46
纸包鱼
阅读(43)
评论(0)
推荐(0)
摘要:
一种先进后出的数据,只有一个出口,实际上就是栈类 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 入栈 push栈中弹出数据称为 出栈 pop 功能描述:栈容器常用的对外接口 构造函数:stack<T> stk; //stack采用模板类实现, stack对象的默认构造形 阅读全文
posted @ 2022-05-08 22:36
纸包鱼
阅读(34)
评论(0)
推荐(0)
摘要:
#include<ctime> srand((unsigned int)time(NULL));//为了防止每次产生的随机数都相同 阅读全文
posted @ 2022-05-08 21:20
纸包鱼
阅读(110)
评论(0)
推荐(0)
摘要:
赋值操作函数原型:deque& operator=(const deque &deq); //重载等号操作符assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。assign(n, elem); //将n个elem拷贝赋值给本身。 也是和vector基本一致,=和 阅读全文
posted @ 2022-05-08 20:54
纸包鱼
阅读(140)
评论(0)
推荐(0)
摘要:
函数原型:deque<T> deqT; //默认构造形式deque(beg, end); //构造函数将[beg, end)区间中的元素拷贝给本身。deque(n, elem); //构造函数将n个elem拷贝给本身。deque(const deque &deq); //拷贝构造函数 构造函数和ve 阅读全文
posted @ 2022-05-08 20:27
纸包鱼
阅读(63)
评论(0)
推荐(0)
摘要:
使用const形参的目的是为了调用函数时不改变容器中的值,这种时候,容器的迭代器也要换成const的,否则会出错 void printdeque(deque<int>const &d) { for (deque<int>::const_iterator i = d.begin(); i != d.e 阅读全文
posted @ 2022-05-08 20:26
纸包鱼
阅读(53)
评论(0)
推荐(0)
摘要:
双端数组,与vector主要的区别就在于是否可以在头尾两边都进行插入和删除,vector就像是栈,deque就像是队列,但是在使用时,vector访问元素的速度要比deque更快,这与其内部实现有关 deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据,中控器维护的是每个缓冲区的地 阅读全文
posted @ 2022-05-08 20:11
纸包鱼
阅读(39)
评论(0)
推荐(0)
摘要:
函数原型:reserve(int len); //容器预留len个元素长度,预留位置不初始化,元素不可访问。 简单来说就是直接给capacity赋值,预留位置的时候,原有的元素不会改变,因为如果数据量较多,那么在运行时会多次重开辟内存,比较耗时,所以最好的办法就是在开始时就直接预留足够的内存 统计开 阅读全文
posted @ 2022-05-08 19:14
纸包鱼
阅读(204)
评论(0)
推荐(0)
摘要:
函数原型:swap(vec); // 将vec与本身的元素互换 这个交换是完全交换,不只是其中的数据,还有size,capacity这些属性都会进行交换 这个交换有一个很有用的地方,就是收缩内存空间,上次说过,resize只是改变了size,没有改变capacity,也就是说,即使这个时候不用这么大 阅读全文
posted @ 2022-05-08 19:03
纸包鱼
阅读(2083)
评论(0)
推荐(0)
摘要:
匿名对象(临时对象)是一种自动构造,自动析构,在本行执行完之后,就会自动销毁通常以下三种情况会产生匿名对象: 1.以值的方式给函数传参,会产生临时对象,为方便区分,称为"参数匿名对象"; Cat(); —> 生成了一个匿名对象,执行完Cat( )代码后,此匿名对象就此消失。这就是匿名对象的生命周期。 阅读全文
posted @ 2022-05-08 18:47
纸包鱼
阅读(689)
评论(0)
推荐(1)
摘要:
只有类的成员函数才能在函数名后面加上const,这时成员函数叫做常量成员函数。 常量成员函数在执行期间不能修改成员变量的值(静态成员变量除外),也不能调用同类的非常量成员函数(同样的静态成员函数除外) 阅读全文
posted @ 2022-05-08 18:41
纸包鱼
阅读(255)
评论(0)
推荐(0)
摘要:
函数原型:at(int idx); //返回索引idx所指的数据operator[]; //返回索引idx所指的数据front(); //返回容器中第一个数据元素back(); //返回容器中最后一个数据元素 和string基本一样,只是多出了首尾数据直接调用 阅读全文
posted @ 2022-05-08 18:26
纸包鱼
阅读(98)
评论(0)
推荐(0)
摘要:
函数原型:push_back(ele); //尾部插入元素elepop_back(); //删除最后一个元素insert(const_iterator pos, ele); //迭代器指向位置pos插入元素eleinsert(const_iterator pos, int count,ele); / 阅读全文
posted @ 2022-05-08 18:18
纸包鱼
阅读(213)
评论(0)
推荐(0)
摘要:
函数原型:empty(); //判断容器是否为空capacity(); //容器的容量size(); //返回容器中元素的个数resize(int num); //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。 //如果容器变短,则末尾超出容器长度的元素被删除。resize(int 阅读全文
posted @ 2022-05-08 15:55
纸包鱼
阅读(109)
评论(0)
推荐(0)
摘要:
函数原型:vector& operator=(const vector &vec); //重载等号操作符 assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。assign(n, elem); //将n个elem拷贝赋值给本身 这个操作和之前的string基本相同 阅读全文
posted @ 2022-05-08 15:45
纸包鱼
阅读(861)
评论(0)
推荐(0)
摘要:
函数原型:vector<T> v; //采用模板实现类实现,默认构造函数vector(v.begin(), v.end()); //将v[begin(), end())区间中的元素拷贝给本身。vector(n, elem); //构造函数将n个elem拷贝给本身。vector(const vecto 阅读全文
posted @ 2022-05-08 15:39
纸包鱼
阅读(653)
评论(0)
推荐(0)
摘要:
使用就像单端数组 不同于数组是固定的空间,而是动态扩展的,他的动态扩展不是链表那样在原来的基础上继续扩展的,而是会直接开辟新的更大的空间,然后拷贝后删除原空间。他是单边的,只有一个边进一个边出,像是队列,同时它的迭代器也是支持随机访问的 v.begin代表的是最开始的值,头上的值,v.end代表的是 阅读全文
posted @ 2022-05-08 15:28
纸包鱼
阅读(36)
评论(0)
推荐(0)
摘要:
功能描述:从字符串中获取想要的子串函数原型:string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字符组成的字符串 阅读全文
posted @ 2022-05-08 15:20
纸包鱼
阅读(29)
评论(0)
推荐(0)
摘要:
函数原型:string& insert(int pos, const char* s); //插入字符串string& insert(int pos, const string& str); //插入字符串string& insert(int pos, int n, char c); //在指定位置 阅读全文
posted @ 2022-05-08 14:42
纸包鱼
阅读(204)
评论(0)
推荐(0)
摘要:
string中单个字符存取方式有两种 char& operator[](int n); //通过[]方式取字符char& at(int n); //通过at方法获取字符 这两个的效果一样,可以进行字符的读写,同时注意字符串可以通过.size()函数判断字符串的大小 阅读全文
posted @ 2022-05-08 14:39
纸包鱼
阅读(590)
评论(0)
推荐(0)
摘要:
比较方式:字符串比较是按字符的ASCII码进行对比= 返回 0> 返回 1< 返回 -1 函数原型:int compare(const string &s) const; //与字符串s比较int compare(const char *s) const; //与字符串s比较 比较的时候从前到后比较 阅读全文
posted @ 2022-05-08 14:34
纸包鱼
阅读(746)
评论(0)
推荐(0)
摘要:
功能描述:查找:查找指定字符串是否存在替换:在指定的位置替换字符串函数原型:int find(const string& str, int pos = 0) const; //查找str第一次出现位置,从pos开始查找int find(const char* s, int pos = 0) cons 阅读全文
posted @ 2022-05-08 14:25
纸包鱼
阅读(909)
评论(0)
推荐(0)
摘要:
主要用于在已有字符串之后追加 函数原型:string& operator+=(const char* str); //重载+=操作符string& operator+=(const char c); //重载+=操作符string& operator+=(const string& str); // 阅读全文
posted @ 2022-05-08 14:12
纸包鱼
阅读(1051)
评论(0)
推荐(0)
摘要:
赋值的函数原型:string& operator=(const char* s); //char*类型字符串 赋值给当前的字符串string& operator=(const string &s); //把字符串s赋给当前的字符串string& operator=(char c); //字符赋值给当 阅读全文
posted @ 2022-05-08 14:04
纸包鱼
阅读(636)
评论(0)
推荐(0)
摘要:
c++的string本身本质上是一个类,类中管理一个c语言类型的char*指针 用类的好处就是其中有很多的封装,并且可以自动管理内存 构造函数原型:string(); //创建一个空的字符串 例如: string str; string(const char* s); //使用字符串s初始化stri 阅读全文
posted @ 2022-05-08 13:57
纸包鱼
阅读(358)
评论(0)
推荐(0)
摘要:
嵌套容器和别的没什么区别,只是说循环也变成了嵌套,同时注意两个>> 中要有等号 迭代器解引用后依旧是迭代器中显示的容器中保存数据类型 vector<vector<int> > v; for (vector<vector<int> >::iterator it = v.begin(); it != v 阅读全文
posted @ 2022-05-08 11:20
纸包鱼
阅读(312)
评论(0)
推荐(0)
摘要:
vector容器是标准容器的一种,可以存放各种数据,使用模板编写成的,所以使用的时候要首先像模板一样先声明其中的数据类型,同时要include容器 #include<vector> vector<int> v; vector容器本身集成了很多的函数,可以调用,比如begin,end函数等 v.pus 阅读全文
posted @ 2022-05-08 10:51
纸包鱼
阅读(67)
评论(0)
推荐(0)
摘要:
为了建立数据结构和算法的一套标准,形成了stl 主要目的是提高复用性 stl 标准模板库,可以分为容器,算法,迭代器,容器和算法间通过迭代器进行拼接,主要使用模板 细分有6各组件,容器,算法,迭代器,仿函数,适配器,空间配置器 1. 容器:各种数据结构,如vector、list、deque、set、 阅读全文
posted @ 2022-05-08 10:22
纸包鱼
阅读(47)
评论(0)
推荐(0)

浙公网安备 33010602011771号