函数内建对象

函数内建对象
STL内建了一些函数对象。使用内建函数对象,需要引入头文件#include,以下列举了内建的函数对象negate(取反),plus(加法),greater(从大到小排序)的使用方法#include<iostream>#include<functional>#include&l
2020年02月09日 122次浏览
函数内建对象

仿函数

仿函数
函数对象也叫仿函数。是重载了‘()’操作符的类,使得类对象可以像函数那样调用。重载的operator()要求获取一个参数的类称为‘一元仿函数’,要求重载的operator要求获取2个参数的类,称为‘二元仿函数’。#include<iostream>usingnamespacestd;cl
2020年02月08日 110次浏览
仿函数

map/multimap容器

map/multimap容器
map中的元素根据键值自动排序,map不允许2个元素有相同的键值,但是value值可以相同。排序规则和set一致。multimap和map的不同之处在于multimap运行重复的键值。#include<iostream>#include<map>usingnamespaces
2020年02月08日 119次浏览
map/multimap容器

set/multiset容器

set/multiset容器
set中所有的元素都是按照键值自动排序,set不允许有2个元素相同的键值,所以不能通过迭代器改变set元素的值。和list一样.删除操作的时候,除了被删除的迭代器会失效,其他迭代器依然有效。也就是说set的iterator是const_iterator.multiset和set的唯一区别是multi
2020年02月08日 110次浏览
set/multiset容器

list容器

list容器
链表是一种物理存储单元上非连续,非顺序的存储结构。STL容器中的list容器是一个循环双向链表。list插入和删除操作都不会造成原有的list迭代器失效。而vector的插入可能导致原有的迭代器全部失效。list的删除也只导致删除的那个元素的迭代器失效,而其他迭代器不受影响#include<i
2020年02月07日 86次浏览
list容器

queue容器

queue容器
queue是一种先进先出的数据结构,一端进行移除元素,一端进行增加元素。不能有遍历的行为。#include<iostream>#include<queue>usingnamespacestd;intmain(intargc,char*argv[]){queue<int&
2020年02月07日 77次浏览
queue容器

stack容器

stack容器
栈是一种先进后出数据结构,只能对栈顶元素进行操作,所以栈不能进行遍历操作,没有迭代器。#include<iostream>#include<stack>//没有遍历的说法,只能访问栈顶元素usingnamespacestd;intmain(intargc,char*argv[
2020年02月07日 73次浏览
stack容器

deque容器

deque容器
deque容器和vector容器最大的差异,一在与deque允许使用常数项时间对头端进行元素插入和删除的操作。二在于deque没有容量的概念,因为它是以分段连续空间组合而成,随时增加一段新的空间并链接起来,也因此deque没有空间保留(reserve)功能。对deque进行排序操作,为了最高效率。可
2020年02月06日 106次浏览
deque容器

vector预留空间

vector预留空间
先看以下例子:#include<iostream>#include<vector>usingnamespacestd;intmain(intargc,char*argv[]){vector<int>v;//v.reserve(10000);intnum=0;int
2020年02月06日 115次浏览
vector预留空间

vector内存释放

vector内存释放
在容器vector中,其内存占用的空间是只增不减的,比如说首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个。所有内存空间在vector析构时回收。一般,我们都会通过vector中成员函数clear进行一些清除操作,但它清除的是所有
2020年02月06日 100次浏览
vector内存释放