随笔分类 -  CPP-STL

摘要:代码1[cpp]view plaincopy#include#includeclassA{public:A(){printf("A()/n");}~A(){printf("~A()/n");}A(constA&other){printf("other/n");}};intmain(){Aa;Ab(... 阅读全文
posted @ 2014-05-22 11:23 CPYER 阅读(1658) 评论(0) 推荐(0)
摘要:在vector中与size()和capacity()相对应的有两个函数:resize(size_type)和reserve(size_type)。Size指目前容器中实际有多少元素,对应的resize(size_type)会在容器尾添加或删除一些元素,来调整容器中实际的内容,使容器达到指定的大小。Capacity指最少要多少元素才会使其容量重新分配,对应reserve(size_type new_size)会这置这个capacity值,使它不小于所指定的new_size。所以用reserve(size_type)只是扩大capacity值,这些内存空间可能还是“野”的,如果此时使用“[ ]”来 阅读全文
posted @ 2014-01-14 11:31 CPYER 阅读(1107) 评论(0) 推荐(0)
摘要:1. vector容器的内存自增长与其他容器不同,其内存空间只会增长,不会减小。先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧空间,这样性能难以接受。因此STL实现者在对vector进行内存分配时,其实际分配的容量要比当前所需的空间多一些。就是说,vector容器预留了一些额外的存储区,用于存放新添加的元素,这样就不必为每个新元素重新分配整个容器的内存空间。关于vector的内存空间 阅读全文
posted @ 2013-10-24 16:51 CPYER 阅读(894) 评论(0) 推荐(0)
摘要://---------------------------------------------------------------------------#include #include #include #include #include // std::time#pragma hdrstop//---------------------------------------------------------------------------#pragma argsusedint main(int argc, char* argv[]){ vector vs; vs.... 阅读全文
posted @ 2013-09-16 11:13 CPYER 阅读(2203) 评论(0) 推荐(0)
摘要:1.vector容器简介:vector向量容器是一种随机访问的数组类型,它提供了对数组元素的快速访问、随机访问,以及在序列尾部快速、随机地插入和删除操作。它类似于数据结构中的队列、数组和堆栈等概念。2.vector容器的定义2.1 头文件#include2.2 命名空间using namespace std;2.3 举例:vector m_vector;//定义一个string类型的向量容器vector m_vector;//定义一个int类型的向量容器vector m_vector(10);//创建了具有10个元素的容器,每个元素初始值为0vector m_vector(10,5);//创建 阅读全文
posted @ 2013-09-12 10:14 CPYER 阅读(1014) 评论(0) 推荐(1)
摘要:本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过!目录 1定义一个list 2使用list的成员函数push_back和push_front插入一个元素到list中 3 list的成员函数empty() 4用for循环来处理list中的元素 5用STL的通用算法for_each来处理list中的元素 6用STL的通用算法count_if()来统计list中的元素个数 7使用count_if()的一个更加复杂的函数对象。 8使用STL通用算法find()在list中查找对象 9使用STL... 阅读全文
posted @ 2013-09-11 17:28 CPYER 阅读(1637) 评论(0) 推荐(0)
摘要:STL备忘(转)1. string.empty() 不是用来清空字符串,而是判断string是否为空,清空使用string.clear();2. string.find等查找的结果要和string::npos比较,而不是和-1比较。(各个平台可能不同)3. 将string转为char * ,用char * t = (char *)s.c_str() ,而不是 char *t =s.begin() 或者 char *t = &s[0] 或者 char *t =s.data();4. 不要用错string.find ,string::find_first_of ,find和find_fir 阅读全文
posted @ 2013-08-23 10:38 CPYER 阅读(518) 评论(0) 推荐(0)