Fork me on GitHub

05 2020 档案

摘要:Set/multiset 中元素的存储数据总是会按照从大到小或者从小到大排列,这个是怎么实现的?这就要说 “仿函数” 这个概念了。 仿函数概念 1. 尽管函数指针被广泛用于实现函数回调,但C++还提供了一个重要的实现回调函数的方法,那就是函数对象。 2. functor,翻译成函数对象,伪函数,它是 阅读全文
posted @ 2020-05-24 23:08 索智源 阅读(465) 评论(0) 推荐(0)
摘要:Set & multiset 在vs2019编译器中提供了16种构造方法 1.默认的无参构造 2.比较容器内容,key_comp()函数返回一个比较key的函数。 3.使用迭代器的区间拷贝,拷贝这部分数据到当前容器 4. 5. 6.set 中迭代器标识区间与其参数set容器进行对比,Key_Comp 阅读全文
posted @ 2020-05-18 01:21 索智源 阅读(148) 评论(0) 推荐(0)
摘要:1. 默认构造 set<int> setInt; //一个存放int的set容器。 set<float> setFloat; //一个存放float的set容器。 set<string> setString; //一个存放string的set容器。 multiset<int> mulsetInt; 阅读全文
posted @ 2020-05-17 22:01 索智源 阅读(386) 评论(0) 推荐(0)
摘要:1. Set 和 multiset 的概念 set 和 multiset 是一个集合容器,其中 set 所包含的元素是唯一的,集合中的元素按一定的顺序排列。set 采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比 vector 快。在n个数中查找目标数的效率是 log2N 阅读全文
posted @ 2020-05-17 19:00 索智源 阅读(707) 评论(0) 推荐(0)
摘要:变参模板 (Variadic Template) - 使得 emplace 可以接受任意参数,这样就可以适用于任意对象的构建 完美转发 - 使得接收下来的参数 能够原样的传递给对象的构造函数,这带来另一个方便性 先来看看下边的代码,看一下C11标准中提供的变参模板的用法之一: 1 #include 阅读全文
posted @ 2020-05-05 18:11 索智源 阅读(774) 评论(0) 推荐(1)
摘要:list.reverse(); //反转链表,比如list包含1, 2, 3, 4, 5五个元素,运行此方法后,list就包含5, 4, 3, 2, 1元素。 1 #include <iostream> 2 #include <list> 3 4 using namespace std; 5 6 i 阅读全文
posted @ 2020-05-05 17:31 索智源 阅读(595) 评论(0) 推荐(0)
摘要:list.front(); //返回第一个元素 list.back(); //返回最后一个元素 1 #include <iostream> 2 #include <list> 3 4 using namespace std; 5 6 int main() 7 { 8 int num[] = { 11 阅读全文
posted @ 2020-05-04 21:43 索智源 阅读(390) 评论(0) 推荐(0)
摘要:list.assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身 1 #include <iostream> 2 #include <list> 3 4 using namespace std; 5 6 int main() 7 { 8 int num[] = { 阅读全文
posted @ 2020-05-04 21:35 索智源 阅读(1224) 评论(0) 推荐(0)
摘要:ist.size(); //返回容器中元素的个数 1 #include <iostream> 2 #include <list> 3 4 using namespace std; 5 6 int main() 7 { 8 int num[] = { 111,222,333,444,555 }; 9 阅读全文
posted @ 2020-05-04 21:34 索智源 阅读(968) 评论(0) 推荐(0)
摘要:push_back(elem); //在容器尾部加入一个元素 1 #include <iostream> 2 #include <list> 3 4 using namespace std; 5 6 int main() 7 { 8 int num[] = { 111,222,333 }; 9 li 阅读全文
posted @ 2020-05-04 20:56 索智源 阅读(1583) 评论(7) 推荐(0)
摘要:list<T> lstT —— list 对象的默认构造 list 与 vector 一样,同样采用模板类实现,对象的默认构造形式:list<T> lstT 如: 1 #include <iostream> 2 #include <list> 3 4 using namespace std; 5 6 阅读全文
posted @ 2020-05-04 19:51 索智源 阅读(837) 评论(0) 推荐(0)
摘要:1. List 容器的基本概念 1. list 是一个双向链表容器,可高效的进行插入删除元素,他的原理在于每个元素都有两个指针来记录前后两个元素的地址,像火车车厢一样,list 中各个元素在物理存储单元上非连续,是通过指针相连在一起的。 2. 相较于vector的连续线性空间,list会显得复杂许多 阅读全文
posted @ 2020-05-03 23:43 索智源 阅读(284) 评论(0) 推荐(0)
摘要:deque.clear(); //移除容器的所有数据 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 int num[] = { 111,222,333,444,555 }; 阅读全文
posted @ 2020-05-03 21:22 索智源 阅读(3041) 评论(0) 推荐(0)
摘要:deque.insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置。 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<i 阅读全文
posted @ 2020-05-03 21:15 索智源 阅读(2068) 评论(0) 推荐(0)
摘要:1. deque 的大小 deque.size(); //返回容器中元素的个数 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<int> deqInt_A; 9 阅读全文
posted @ 2020-05-02 22:56 索智源 阅读(863) 评论(0) 推荐(0)
摘要:deque 的赋值分下边4种方法: deque.assign(beg,end); //将[beg, end)区间中的数据拷贝赋值给本身。注意该区间是左闭右开的区间。 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 阅读全文
posted @ 2020-05-02 22:00 索智源 阅读(331) 评论(0) 推荐(0)