STL
123.56.119.133:8090
http://123.56.119.133:8090/
展开
-
STL_Iterator
迭代器iterator是一个很神奇的东西。 STL的中心思想在于:将数据容器和算法分开,彼此独立设计,最后再以胶合剂(iterator)将他们撮合在一起。 #pragma once #include #include #include #include void TestVector() { vector v; v.push_back(1); v.push_b原创 2016-06-25 14:19:06 · 217 阅读 · 0 评论 -
STL_MAP
// accessing mapped values #include #include #include int main() { std::map mymap; //operator[] 返回指向second的指向的东西 mymap['a'] = "an element"; mymap['b'] = "another element"; mymap['c'] = mymap[原创 2016-08-31 10:43:12 · 225 阅读 · 0 评论 -
STL_stack/STL_queue
1、stack stack 模板类的定义在头文件中。 stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要 的,在不指定容器类型时,默认的容器类型为deque。 定义stack 对象的示例代码如下: stack s1; stack s2; stack 的基本操作有: 入栈,如例:s.push(x); 出栈,如例:s.pop();注意,出栈操作只是原创 2016-08-30 21:08:15 · 247 阅读 · 0 评论 -
STL_Deque
C++ Deque(双向队列) 是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素比vector 更有效。 实际上,原创 2016-07-06 11:39:11 · 176 阅读 · 0 评论 -
STL_List使用
list构造: // constructing lists #include #include int main() { std::list first;// 空链表 std::list second(4, 100); //用4个值,全为100 std::list third(second.begin(), second.原创 2016-07-04 11:44:38 · 218 阅读 · 0 评论 -
STL_Bitset
1.构造 std::bitset foo;//构造16位的无参默认为0的位图 std::bitset bar(0xfa2);//转化为二进制形式 std::bitset baz(std::string("0101111001")); std::cout << "foo: " << foo << '\n'; std::cout << "bar: " << bar << '\n';原创 2016-07-05 10:50:29 · 207 阅读 · 0 评论 -
STL_vector使用
Construct vector: #include #include int main() { std::vector first; //空的vector std::vector second(4, 100); // 第一个值为元素个数,第二个值为初始值 std::vector third(second.begin(), second.end()); //通过原创 2016-07-03 23:26:03 · 551 阅读 · 0 评论 -
STL_list应用举例
#include using namespace std; #include #include int main() { int i; list ilist; cout << "size=" << ilist.size() << endl; //size=0 ilist.push_back(0); ilist.push_back(1); ilist.push_back(2); il原创 2016-06-30 19:51:10 · 749 阅读 · 0 评论 -
初识STL
STL是C++标准库的最重要的组成部分,STL(标准模板库)不仅是一个可复用的组件库,而且是一个包含算法和数据结构的软件框架 STL六大组件: 1.容器(containers):各种数据结构 2.算法(alogorithms):各种常用算法:sort,search,copy,erase 3.迭代器(iterators):扮演容器与算法之间的胶合剂 4.仿函数(functors):原创 2016-06-26 13:19:40 · 214 阅读 · 0 评论 -
stl分析之allocator
在STL中,Memory Allocator 处于最底层的位置,为一切的 Container 提供存储服务,是一切其他组件的基石。对于一般使用 STL 的用户而言,Allocator 是不可见的,如果需要对 STL 进行扩展,如编写自定义的容器,就需要调用 Allocator 的内存分配函数进行空间配置。 在C++中,一个对象的内存配置和释放一般都包含两个步骤,对于内存的配置,首先是调用op转载 2016-06-25 23:39:53 · 391 阅读 · 0 评论 -
迭代器失效小分析
迭代器失效小实例: void PrintVector(vector& v) { vector::iterator it = v.begin(); while (it != v.end()) { cout << *it << " "; ++it; } cout << endl; } void TestVector() { vector v; v.push_back(1);原创 2016-06-25 15:39:27 · 212 阅读 · 0 评论 -
STL常见面试题
1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等。 2.标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:转载 2016-09-13 11:07:09 · 2597 阅读 · 0 评论