#include<iostream> using namespace std; #include "deque" #include "algorithm" void printD(deque <int> &d) { for (deque<int>::iterator it = d.begin();it != d.end();it++) { cout<<*it<<endl; } } void main…
#include<iostream> using namespace std; #include "deque" #include "algorithm" void printD(deque <int> &d) { for (deque<int>::iterator it = d.begin();it != d.end();it++) { cout<<*it<<endl; } } void main…
/*============================================ string是STL的字符串类型,通常用来表示字符串 = ============================================*/ #include <iostream> using namespace std; #include "string"//string的头文件 #include "algorithm" /*============…
10.2.4stack容器 Stack简介 ²  stack是堆栈容器,是一种"先进后出"的容器. ²  stack是简单地装饰deque容器而成为另外的一种容器. ²  #include <stack> stack对象的默认构造 stack采用模板类实现, stack对象的默认构造形式: stack <T> stkT; stack <int> stkInt;            //一个存放int的stack容器. stack <float…
10.2.5Queue容器 Queue简介 ²  queue是队列容器,是一种"先进先出"的容器. ²  queue是简单地装饰deque容器而成为另外的一种容器. ²  #include <queue> queue对象的默认构造 queue采用模板类实现,queue对象的默认构造形式:queue<T> queT;  如: queue<int> queInt;            //一个存放int的queue容器. queue<float&…
#include<iostream> using namespace std; #include "vector" //数组元素的 添加和删除 void main31() { //获取元素的大小 vector<int> v1; cout <<"length: "<<v1.size()<<endl; v1.push_back(); v1.push_back(); v1.push_back(); cout &l…
Effective STL 学习笔记 Item 30: 保证目标区间足够大 */--> div.org-src-container { font-size: 85%; font-family: monospace; } p {font-size: 15px} li {font-size: 14px} Table of Contents 1. 容器区间与算法 2. back_inserter 3. front_inserter 4. inserter 5. inserter & reserve…
jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.noop //返回一个空函数 function noop() { } noop这个函数的功能就是什么也不做,方便在全局使用一个空函数,减少内存开销. 2.error function error(msg) { throw new Error(msg); } 用于统一抛出异常,可以减少代码中使用thro…
1.Deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的. deque在接口上和vector非常相似,在许多操作的地方可以直接替换. deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). deque头部和尾部添加或移除元素都非常快速.但是在中部安插元素或移除元素比较费时. 2.deque对象的默认构造 deque采用模板类实现,deque对象的默认构…
Effective STL 学习笔记 39 ~ 41 */--> div.org-src-container { font-size: 85%; font-family: monospace; } pre.src { background-color:#2e3436; color:#fefffe; } p {font-size: 15px} li {font-size: 15px} Table of Contents Make Predicate pure Function Make Funct…
Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value */--> div.org-src-container { font-size: 85%; font-family: monospace; } pre.src { background-color:#f8f4d7 } p {font-size: 15px} li {font-size: 15px} 严格来讲, C 和 C++ 都不支持将函数作为参数,真正作为…
Effective STL 学习笔记 Item 34: 了解哪些算法希望输入有序数据 */--> div.org-src-container { font-size: 85%; font-family: monospace; } pre.src { background-color:#f8f4d7 } p {font-size: 15px} li {font-size: 15px} 有些个算法对有序的和无序的数据都能应用,但多数情况下,他们在输入数据有序时才最有用. 下列算法要求输入数据必须有序…
Effective STL 学习笔记 32 ~ 33 */--> div.org-src-container { font-size: 85%; font-family: monospace; } pre.src { background-color:#f8f4d7 } p {font-size: 15px} li {font-size: 15px} Table of Contents 记得 Remove 后要 Erase remove, container, pointer 1 记得 Remo…
Effective STL 学习笔记 31:排序算法 */--> div.org-src-container { font-size: 85%; font-family: monospace; } pre.src { background-color:#f8f4d7 } p {font-size: 15px} li {font-size: 15px} Table of Contents partial_sort nth_element stability partition 总结 1 parti…
Effective STL 学习笔记 Item 26: Prefer Iterator to reverse_iterator and const_rever_itertor */--> div.org-src-container { font-size: 85%; font-family: monospace; } Table of Contents 1. Iterator 的类型 2. 迭代器之间的转换 3. Iterator is Special 4. 总结: 1 Iterator 的类型…
Effective STL 学习笔记: Item 22 ~ 24 */--> div.org-src-container { font-size: 85%; font-family: monospace; } Table of Contents 1. 避免 \(set \& multiset\) 在原位改变 Key 2. Consider replacing associative containers with sorted vectors 3. Choose carefully betw…
Effective STL 学习笔记 Item 21:Comparison Function 相关 */--> div.org-src-container { font-size: 85%; font-family: monospace; } Table of Contents 1. Always have comparison functions return false for equal values 2. Strict Weak Ordering 1 Always have compar…
Effective STL 学习笔记:19 ~ 20 */--> div.org-src-container { font-size: 85%; font-family: monospace; } Table of Contents 1. Item 19: 相等 (Equality) 与等价 (Equivalence) 2. Item 20: Specify Comparison Type for Associative containers of pointers 1 Item 19: 相等…
Effective STL 学习笔记: 多用 vector & string 如果可能的话, 尽量避免自己去写动态分配的数组,转而使用 vector 和 string . 原书作者唯一想到的一个不用 string 的可能的理由,就是 string 所使用的引用计数 (reference counting) 在多线程下可能会因为并发控制反而导致性能下降.我们可以通过查看文档或者 STL 源面的方法来看 String 是否引入了引用计数,如果 string 在多线程下真的因为引用计数而导致了性能下降…
STL的概念 源地址  https://www.ev0l.art/index.php/archives/15/ <li> Iterator (迭代器)<li> Container (容器) array<li> Alogrithm (算法)<li> Adapters (配接器) 用来实现容器之间的转接 面向过程-->面向对象->基于对象->泛型 代码 #include <iostream> #include <vector&…
clear()clear()clear():清空队列 pushpushpush_back()back()back():从尾部插入一个元素. pushpushpush_front()front()front():从头部插入一个元素. deque双端队列的先进就在这里,它可以两端都支持同样的操作. size()size()size():返回队列元素个数 front()front()front():返回队列首部元素. back()back()back():返回尾部元素. poppoppop_back(…
20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc.openhome; public class Main { public static void main(String[] args) { System.out.println("Hello World"); } } “命令行提示符”模式下你的工作路径是C:\workspace\Hel…
//deque双端队列容器 //deque双端队列容器与vector一样,采用线性表顺序存储结构,但与vector不同的是, //deque采用的分块线性存储结构来存储数据,每块的大小一般为512字节,成为一个deque块 //所有deque块使用一个Map块进行管理,每个Map数据项纪录各个deque块的首地址,这样一来,deque的 //头部和尾部都可插入和删除元素,而不需移动其他元素 .使用push_back()方法在尾部插入元素,会扩张队列 //而使用push_front()方法在首部插…
所谓deque,是"double-ended queue"的缩写; 它是一种动态数组形式,可以向两端发展,在尾部和头部插入元素非常迅速; 在中间插入元素比较费时,因为需要移动其它元素;(No) 双端队列容器,在序列的两端放置和删除元素是高效的; 而vector只是在序列末尾插入才是高效的.  C++ Code  1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484…
STL简介 1 概况 2 1.1 STL是什么 2 1.2 为什么我们需要学习STL 2 1.3 初识STL 2 1.4 STL 的组成 5 2 容器 6 2.1 基本容器——向量(vector) 6 2.2  双端队列(deque容器类) 9 2.3 表(List容器类) 10 2.4 集和多集(set 和multiset 容器类): 12 2.5 映射和多重映射(map 和multimap) 13 3 算法(algorithm): 15 3.1 翻转和复制(reverse()和copy())…
简介 STL(Standard Template Library),即标准模版库,涵盖了常用的数据结构和算法,并具有跨平台的特点.STL是C++标准函数库的一部分,如下图所示: STL含有容器.算法和迭代器组件,其之间的合作如下图所示: STL的底层机制都是以RB-tree(红黑树)完成的.一个红黑树是一棵二叉树. 容器 标准序列式容器 字符串(string) std::string不能初始化为NULL. 向量(vector) 向量(vector) 连续存储的元素. vector和数组类似,拥有…
笔者作为计算机科学与技术专业的学生,学习并使用C++已经有3年了.在接触STL之前的编程习惯是,所有程序的功能包括数据结构.算法等都是亲自实现,效率极其缓慢.后来从使用STL的vector开始慢慢的感觉,如果能了解更多的C++库,并会合理组合各种现有的容器和算法,那么开发效率大大提升!只学会C++的语法根本算不上是学会了C++.正如Scott Meyers在<Effective C++>中说道,要视C++为一个语言的联邦!在这里,笔者作为自己的学习笔记,把所学的知识记录下来,希望以后可以复习,…
6.双端队列deque 所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速.而在中间插入元素则会比较费时,因为必须移动中间其他的元素.双端队列是一种随机访问的数据类型,提供了在序列两端快速插入和删除操作的功能,它可以在需要的时候改变自身大小,完成了标准的C++数据结构中队列的所有功能. Vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间.deque对象在队列的两端放置元素和删除元素是高效的,而向量vector…
layout: post title: 侯捷STL学习(八) date: 2017-07-19 tag: 侯捷STL --- 第十八节 深度探索deque上 duque内存结构 分段连续,用户看起来是连续的 迭代器为了维持连续的状态,每次++,--都需要判断当前buffer是否用完,若用完则需要通过控制中心跳到下一个buffer 控制中心的map是指向vector的,以后也是2倍增长 deque iterator迭代器实现,关键有指向map的指针 deque<T>::insert讲解 很好体现…
第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念,是把我们程序中的类与类之间的依赖关系交给容器去处理,一般有两种方式(面试): 依赖查找DL(dependency lookup):程序提供查找方式,交给容器去查找(相当于se中的回调函数): 依赖注入DI(dependency injection):程序不提供查找方式,提供合适的构造方法或者set…