STL
liuhmmjj
对计算机编程很有兴趣
展开
-
stl map遍历和删除的方法
for(;iter!=mapStudent.end();){ if((iter->second)>=aa) { //满足删除条件,删除当前结点,并指向下面一个结点 mapStudent.erase(iter++); } else { //原创 2015-03-15 18:32:38 · 6145 阅读 · 0 评论 -
C++ string操作
append()//C++ append()函数|C++ 一个字符串连接在另一个字符串后面【C++ string】#include#includeusing namespace std;void main(){string a="www.ok2002.com";string b=" study C++ program";a.a原创 2015-04-28 12:45:18 · 2760 阅读 · 0 评论 -
vector的reserve和resize以及capacity和size
1.capacity 指容器在不分配新的存储空间的前提下它最多可以保存多少元素。2. size 指当前容器已经保存的元素的数目。 在弄清这两个概念以后,很容易懂resize和reserve的区别 vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的cap原创 2015-03-12 14:31:44 · 3237 阅读 · 0 评论 -
盛大游戏关于vector删除元素面试题
下列代码的输出为:#include "iostream" #include "vector" using namespace std; int main(void) { vectorint>array; array.push_back(100); array.push_back(300); ar原创 2015-03-15 19:01:38 · 1145 阅读 · 0 评论 -
stl智能指针auto_ptr
感觉auto_ptr还是存在一些不足的,效率十分低,而且丢失了一般指针方便常用的操作,如++,--等,auto_ptr只重载了=,*,->这几个操作符,所以使用很不方便。 一、说明:int *a = NULL;delete a;//do nothing 应此auto_ptr的析构函数是这样子的: ~auto_ptr() { // destroy the原创 2015-03-14 18:41:07 · 605 阅读 · 0 评论 -
C++ STL--stack/queue 的使用方法
1、stackstack 模板类的定义在头文件中。stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。定义stack 对象的示例代码如下:stack s1;stack s2;stack 的基本操作有:入栈,如例:s.push(x);出栈,如例:s.pop();注意,出栈操作只是原创 2015-03-12 22:34:07 · 5447 阅读 · 0 评论 -
unique , unique_copy函数
一.unique函数类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素。该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束。 1 // sort words alphabetically so we can find the duplicates 2 sort(原创 2015-03-12 15:07:53 · 706 阅读 · 0 评论 -
find ,find_first_of , find_if , adjacent_find的使用
一.find运算假设有一个int型的vector对象,名为vec,我们想知道其中是否包含某个特定值。解决这个问题最简单的方法时使用标准库提供的find运算: 1 // value we'll look for 2 int search_value = 42; 3 4 //call find to see if that value is present 5 v转载 2015-03-12 15:03:33 · 799 阅读 · 0 评论 -
求和:accumulate
该算法在numeric头文件中定义。假设vec是一个int型的vector对象,下面的代码://sum the elements in vec starting the summation with the value 42int sum = accumulate(vec.begin() , vec.end() , 42);将sum设置为vec的元素之和再加上42。转载 2015-03-12 15:05:43 · 765 阅读 · 0 评论 -
STL总结
Sequence containersAssociative containers Headers Memberscomplexvectordequelistsetmultiset原创 2015-03-12 15:56:06 · 746 阅读 · 0 评论 -
STL面试题
1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等2.标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉转载 2015-03-11 22:15:07 · 1330 阅读 · 0 评论 -
C++ STL之vector详解
Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用vector,必须在你的头文件中包含下面的代码:#include 构造函数。 Vect原创 2015-03-11 19:40:21 · 1241 阅读 · 0 评论 -
STL map
map的特性是,所有元素都会根据元素的键值自动被排序。map的所有元素都是pair,同时拥有实值(value)和键值(key)。pair的第一元素被视为键值,第二元素被视为实值。map不允许两个元素拥有相同的键值。1. map最基本的构造函数;mapmapstring; mapmapint;mapmapstring; mapmapchar;mapmapchar; map原创 2015-03-15 18:25:11 · 732 阅读 · 0 评论 -
c++ string 类基本用法
C++中string是标准库中一种容器,相当于保存元素类型为char的vector容器(自己理解),这个类提供了相当丰富的函数来完成对字符串操作,以及与C风格字符串之间转换,下面是对string一些总结 一,C语言的字符串在C语言里,对字符串的处理一项都是一件比较痛苦的事情,因为通常在实现字符串的操作的时候都会用到最不容易驾驭的类型——指针。比如下面这个例子:原创 2015-03-16 20:44:46 · 2353 阅读 · 0 评论 -
STL priority_queue
优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。例如:我们常用的操作就是对数据排序,优先队列默认的是数据大的优先级高所以我们无论按照什么顺序push一堆数,最终在队列里总是top出最大的元素。用法:示例:将元素5,3,2,4,6依次push到优先队列中,原创 2015-03-16 14:39:51 · 756 阅读 · 0 评论 -
STL set
1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让原创 2015-03-16 14:37:42 · 929 阅读 · 0 评论 -
STL中用erase()方法遍历删除元素
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。 在使用 list、set 或 map遍历删除某些元素时可以这样使用:正确使用方法1 std::list List; std::l原创 2015-03-15 18:47:41 · 852 阅读 · 0 评论 -
C++ pair的用法
1 pair的应用pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。2 make_pair函数原创 2015-03-15 15:53:38 · 31892 阅读 · 2 评论 -
vector 初始化 与遍历
#include #include #include #include using namespace std;void main(){ vector::iterator int_ite; vector::iterator string_ite; //vector v(n,i)形式,v包含n 个值为 i 的元素 vector原创 2015-03-17 11:07:35 · 2472 阅读 · 0 评论