C++ STL
CarmenIsOK
这个作者很懒,什么都没留下…
展开
-
1.C++ STL之结构等概念
C++标准库包括STL(标准模板库)C++头文件不带副档名.h新式C的头文件 #include<cstdio>旧式C的头文件#include<stdio.h>新式的头文件内的组件封装余nampespace “std”“前闭后开区间” [ )*(c.begin())√*(c.end()) ×Container\<T\>::iterator ...原创 2019-03-21 23:52:36 · 127 阅读 · 0 评论 -
11.C++ STL之deque
一、容器deque结构是双向开口的空间。而vector是单向的,已知vector的内存扩充是二倍成长。那么deque怎么扩充呢?双向扩充!deque的方式是使用分段,然后将各段串接在一起。map是个vector,其中每个元素是指针,指向每个分段,以将每个分段串接在一起。如果队列末尾满了,需要再分配一个buffer,并且在map后面中存入指向他的指针。deque的迭代器iterato...原创 2019-08-05 19:57:18 · 272 阅读 · 0 评论 -
10.C++ STL之forward_list
forward_list是单向链表list是双向链表,forward_list与其相类。原创 2019-07-25 21:30:36 · 196 阅读 · 0 评论 -
9.C++ STL之array
一、为什么包装成容器呢?array数组包装成容器,那么就要遵循容器的规则:比如提供iterator等等否则被摒弃在整个六大部件之外,不能享受算法等。二、数据结构...原创 2019-07-14 21:26:59 · 163 阅读 · 0 评论 -
8.C++ STL之vector
容器vectortemplate <clss T,class Alloc=alloc>class vector{public: typedef T value_type; typedef value_type* iterator; //T* typedef value_type& reference; typedef size_t size_type;prot...原创 2019-07-14 21:06:42 · 181 阅读 · 0 评论 -
7.C++ STL之Iterator
Iterator需要遵循的原则Iterator是算法和容器的桥梁iterator 需要回答在本例子中需要回答3种问题,在C++标准库开发种需要设计出5种,另外两种从未在C++标准库中被使用过:reference 和 pointertemplate<typename _ForwardIterator>inline voidrotate(_ForwardIterator _fi...原创 2019-04-14 16:00:15 · 287 阅读 · 0 评论 -
6.C++ STL之list
源代码G2.9 sizeof(list)=4 link_node * 一个指针在32位系统是4字节G4.9 sizeof(list)=8template<class T,class Alloc=alloc>class list{ protected: typedef _list_node<T> list_node; public: typedef li...原创 2019-04-04 11:30:24 · 189 阅读 · 0 评论 -
3.C++ STL之分配器 allocator
常用:1.vector2.list3.deque4.set5.map6.unordered_set7.unordered_map<扩充性,非标准>定义在gnu_cxx中#include <ext\array_allocator.h>#include <ext\mt_allocator.h>#include <ext\debug_al...原创 2019-03-28 23:53:35 · 513 阅读 · 1 评论 -
5.C++ STL之操作符重载、泛化
操作符重载reference operator*(){}pointer opeator->(){}self& operator++()self operator++(int)类模板template\<typename\ T>class complex{ ......}complex<double> c1(2.5,1.5);函数模板...原创 2019-04-02 00:00:50 · 284 阅读 · 0 评论 -
4.C++ STL之OOP vs. GP
OOP(面向对象编程)Object-Oriented programmingOOP企图将datas和methods关联在一起GP(泛型编程)Generic ProgrammingGP却是将datas和methods分开来采用GP,容器和算法的团队可各自闭门造车,期间以迭代器沟通即可。...原创 2019-03-31 23:52:46 · 263 阅读 · 0 评论 -
2.C++ STL之容器分类与测试
1## 容器的分类①序列(循序)容器a.数组Array(无法扩充)b.向量Vector(内存后面自动扩充)c.双向队列Deque(前面和后面都可扩充)d.双向链表List(源代码还是个环,前后都可扩充)e.单向链表Forward-List双向链表比单向链表耗用更多的内存,因为一个指针在32位电脑上占四个字节。②关联式容器(适合于快速查找)由关键字快速找值。①Set/Multis...原创 2019-03-28 00:03:33 · 229 阅读 · 0 评论 -
12.C++ STL之queue、stack
queuestack同queuequeue和stack关于其iterator和底层结构stack或者queue都不允许遍历,因此也不提供iterator,因此也不能在任意一个地方插入元素(1)stack和queue都可以选择list或者deque作为底层结构但是deque更快(2)queue不可选择vector作为底层结构,stack可以选择vector作为底层结构queue&...原创 2019-08-05 20:17:51 · 205 阅读 · 0 评论