STL
吴安
大漠孤烟直,长河落日圆。 C++ C# Halcon openCV
展开
-
deque
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存de转载 2016-08-19 08:56:25 · 265 阅读 · 0 评论 -
单件类的实现
#include #include #include #include "string"using namespace std;class example_singletom;template class singleton{public: static T* instance(); static void releaseinstance(); singleton(){}原创 2016-11-25 21:42:09 · 1088 阅读 · 0 评论 -
模板类默认参数,模板类的特化,偏特化, 模板成员函数,模板的专用化例子
#include "stdio.h"#include "stdlib.h"#include #include using namespace std;class Sample2{public: template void print() {printf("\nSample2 print template , "); cout<<"print####:"<<typeid(T)原创 2016-12-07 14:34:27 · 1505 阅读 · 0 评论 -
成员函数(member function)模板(template) 详解 及 代码
成员函数(member function)模板(template) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/16918085 成员模板(member template) 既可以在普通类(ordinary class), 也可以在类模板(class template);转载 2016-12-07 14:41:02 · 2159 阅读 · 0 评论 -
C++关键字typename的深入理解
在C++模板中,可以使用class或者typename来声明模板参数,那么这两个关键字有什么区别呢?模板参数声明对于模板参数声明,这两个参数没有区别,含义是一样的。template class Widget; // uses "class"template class Widget; // uses "typename"答案:没什么不同。在声明一个 template type p转载 2016-12-07 10:54:30 · 298 阅读 · 0 评论 -
模板函数和类的特化以及偏特化
模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。先看类模板:[cpp] view plain copytemplatetypename T1, ty转载 2016-12-07 09:17:31 · 990 阅读 · 0 评论 -
STL 总结
http://blog.csdn.net/qq_22642239/article/details/52183314STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list, vector,set,map等,STL也是算法和其它一些组件的集合。转载 2016-11-17 13:35:22 · 293 阅读 · 0 评论 -
C++模板的理解
#include #include using namespace std;//using std::cout;//using std::cin;//using std::endl;template class stack{public: void push(T& a); T pop(); stack( int maxSize);//int maxSize void sh原创 2016-10-17 16:15:11 · 309 阅读 · 0 评论 -
智能指针小代码
智能指针就是封装一个模板类。里面有一个计数器。方便我们去创建,他会自动去回收指针,而不用我们去delete。#include #include #include using namespace std;class Stub{public:string str;void print(){cout}~Stub(){cout}}原创 2016-10-12 11:03:46 · 205 阅读 · 0 评论 -
C++ Template List(part)
#include using namespace std;template class mynode{public: T m_obj; mynode * m_next;}; template class myList{public: myList() { m_header=NULL; } void create( T val); void addtotail原创 2016-10-21 18:45:48 · 347 阅读 · 0 评论 -
自己写的链表模板类
#include using namespace std;template class Node{public: Node() { m_header=NULL; m_pNext=NULL; } void CreateList(T newNodeCuntter); int GetListSize(); void AddToTail( T newNodeCuntt原创 2016-10-21 17:28:46 · 428 阅读 · 0 评论 -
STL的堆操作
STL里面的堆操作一般用到的只有4个:make_heap();、pop_heap();、push_heap();、sort_heap();他们的头文件函数是#include 首先是make_heap();他的函数原型是:void make_heap(first_pointer,end_pointer,compare_function);一个参数是数组或向量的头指针,转载 2016-08-19 18:55:02 · 316 阅读 · 0 评论 -
栈(statck)
栈(statck)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了。因此实现非常的方便。下面就给出栈的函数列表和VS2008中栈的源代码,在STL中栈一共就转载 2016-08-19 10:04:23 · 1469 阅读 · 0 评论 -
vector 的基本用法
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=ve转载 2016-01-23 16:08:01 · 718 阅读 · 0 评论 -
vector 常用函数
vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 简单的使用方法如下: vector test;//建立一个vector t转载 2016-01-23 16:26:55 · 4395 阅读 · 0 评论 -
vector:
STL:标准模板库,是很多聪明人的杰作总结所成,会用即可vector:Constructors 构造函数Operators 对vector进行赋值或比较assign() 对Vector中的元素赋值at() 返回指定位置的元素back() 返回最末一个元素begin() 返回第一个元素的迭代器capacity() 返回vector所能容纳的元素数量(在转载 2016-01-23 16:28:59 · 361 阅读 · 0 评论 -
Vector容器中存放结构体类型的变量
如果要在Vector容器中存放结构体类型的变量,经常见到两种存放方式.方式一:放入这个结构体类型变量的副本。方式二:放入指向这个结构体类型变量的指针。假设结构体类型变量是这样的,[cpp] view plain copy print?typedef struct student{ char school_nam转载 2016-01-23 16:08:54 · 3556 阅读 · 0 评论 -
单体模式+模板类+智能指针实现CSingleton
单体模式+模板类+智能指针实现CSingleton定义单体(Singleton)模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。理解1. Singleton模式用来取代全局静态变量。C++通过静态成员变量来实现类实例全局唯一性。2. instance()方法是单体提供的唯一调用入口。要点1. 为了防止外界调用产生多个实例转载 2017-02-14 17:00:51 · 350 阅读 · 0 评论