stl
freehyan
人生没有梦想,和咸鱼有什么区别?
展开
-
STL vector
STL 最常见使用最多的是vector,它能容纳任何数据类型,因为它是模板实现,所以自定义的结构体,也是可行。内部实现是以数组形式,所以开辟的内存空间是连续的,并且vector中operator了[]符号,可以像数组一样访问数据。但是需要注意的是,这不是安全的,加入超过了vector的实际长度空间,那么取的值就是异常值,解决方法是使用at函数取值,越界会报异常out_of_range。 vecto原创 2016-03-08 23:11:29 · 336 阅读 · 0 评论 -
STL set
stl中的set是关联性容器结构,内部实现是采用红黑树的平衡二叉树,在set容器中每个元素的值唯一,即如果插入两个相同的数,后面的会被忽略,不会插入set容器。并且,set的元素会自动排序,默认排序方式从大到小的方式,当然可以自定义排序方式。注意,set容器中元素的值不能直接被修改。插入元素不同于的vector的push_back()方式,set中加入元素的函数是insert()。#include原创 2016-03-09 23:29:02 · 676 阅读 · 0 评论 -
STL list
STL中的list是序列容器,内部实现方式是双向链表,而链表的优势在于插入和删除元素效率高,但是随机访问元素相比vector数组的形式就低,所以读者在具体实现项目的时候,可以考虑因素选取。函数说明 list explain push_back 增加一元素到链表尾 push_front 增加一元素到链表头 sort 对链表排序,默认升序 merge 合并两个有序链原创 2016-03-11 23:20:34 · 421 阅读 · 0 评论 -
STL map
stl中的map和set一样,都是关联性容器,内部实现是红黑树,所以检索速率高效。不同的是,map的数据形式是键值对,即Key-value。而且需要注意的是在map中,key值唯一,并默认会根据key的字典序进行升序排序。数据插入map添加数据可以有四种方式,分别是通过pair组合成键值对的形式,和数组的方式添加。#include <iostream> #include <string> #incl原创 2016-03-28 22:17:27 · 344 阅读 · 0 评论 -
STL stack
stack栈是一种先进后出的数据结构,记得大学时期的计算器就是使用栈的数据结构实现,当然这种数据结构使用场景居多。Constructor stackstd::stack<int> first; std::stack<int> second(first); std::stack<int, std;:vector<int>> third; //使用vector初始化stack压栈,出栈stack压栈函数原创 2016-03-28 22:43:12 · 296 阅读 · 0 评论