vector vector维护的是一个连续线性空间 vector是动态空间,随着元素的加入会自动扩容,扩充至当前size的两倍,然后将原内容拷贝,开始在原内容之后构造新元素,并释放空间 vector提供的迭代器是 random access iterators 随机访问迭代器,vector迭代器是普 ...
分类:
其他好文 时间:
2016-09-04 22:31:45
阅读次数:
180
STL算法的精髓在于 算法的 返回值!!! String: string是STL的字符串类型,通常用来表示字符串;C语言中一般用char* char*字符指针;string是类封装了char*,管理这个字符串,是一个char*型的容器; string不用考虑内存释放和越界,string管理char* ...
分类:
其他好文 时间:
2016-08-30 19:31:41
阅读次数:
149
STL中有很多算法,这些算法可以用到一个或多个STL容器(因为STL的一个设计思想是将算法和容器进行分离),也可以用到非容器序列比如数组中。众多算法中,查找算法是应用最为普遍的一类。 单个元素查找 1、 find() 比较条件为元素是否相等的查找: template <class InputIter ...
分类:
编程语言 时间:
2016-08-26 21:13:33
阅读次数:
193
当删除一个STL容器(比如map, vector)中的某个元素时, 会引起迭代器失效, 所以, 我们务必提高警惕。 题目: 删除map<int, int>中value为5的倍数的元素。 该题看起来很自然很简单, 实则有迭代器失效的陷阱。 如果对迭代器失效问题一无所知, 则很容易写出如下的错误代码: ...
分类:
其他好文 时间:
2016-08-16 21:45:13
阅读次数:
211
1.
容器如vector、deque、list是线性存储的,它们都是有迭代器的。
queue和stack作为容器适配器,没有迭代器的。它们默认使用deque作为底层元素。
2.
heap不属于STL容器,但是它是优先队列的幕后英雄。heap底层是vector或者array实现的。STL实现了最大堆,这样可以满足优先队列的特性。
优先队列也是容器适配器。
3.
slist是单向列表,它...
分类:
其他好文 时间:
2016-08-14 17:55:26
阅读次数:
161
问题链接:UVA10815 Andy's First Dictionary。
题意简述:输入一个文本文件,从中提取出字典,重复的单词被去掉。
这个问题用C++语言编写程序,主要是为了练习使用STL的功能。另外一点,C++编写程序效率会更高。
使用STL容器类的set,可以方便地去重复,而且还会自动排序。
程序中,使用C语言的库函数strtok()来切割单词,并且用空格' '作为分隔符。...
分类:
其他好文 时间:
2016-08-05 10:20:04
阅读次数:
159
1. vector
vectoriv(2,9);
iv.size();
iv.push_back(1);
iv.pop_back();
vector::iteratorivite=find(iv.begin(),iv.end(),1); //STLfind()函数
iv.erase(ivite);
iv.insert(ivite,3,7);
iv.clear();
2. lis...
分类:
编程语言 时间:
2016-08-02 17:07:03
阅读次数:
182
本文主要从C++11关键字及语法、STL容器、多线程、智能指针内存管理和std::function、std::bind、lamda表达式等方面介绍C++11的特性,也加入了博主在工作中的使用经验之谈。 ...
分类:
编程语言 时间:
2016-07-30 13:22:20
阅读次数:
500