vector

都c++11了,还有人不知道emplace_back()?

在前面的章节《初识STL中的vector容器》我们曾谈到vector插入元素的方法,想必大家只知道push_back()这个尾插函数吧,其实,在c++11后,vector还有一个尾插函数,那就是emplace_back(),en的意思是进入,place的意思是位置,emplace_back()就是放到最后面的意思。不是都有push_back()了吗,这么还会有emplace_back()呢?其实这

vector容器怎么在指定位置前插入元素?

对于vector容器,我们现在已经很熟悉尾插法push_back()和emplace_back()了,并且我们还知道在面对复杂对象的时候,使用emplace_back()的效率更高。但是当我们需要在vector内其他位置插入元素,该怎么办呢?别着急,insert()或emplace()能够帮助你解决这个问题。vector里,insert()和emplace()都能够在指定位置前插入元素,相同点是他

vector容器怎么删除元素呢?

前面我们已经讲了对vector的增、查操作,本节将会详细介绍如何对vector进行元素的删除。下表展示了所有能够进行元素删除的vector的成员函数:函数参数及介绍pop_back()参数:无介绍:删除向量的最后一个元素,大小减1,容量不变erase(position)参数:const_iterator position介绍:删除指定位置的单个元素,

vector性能优化小技巧

如果前面内容你都看了的话,那你基本掌握对vector的增删改查了。这一节我们主要谈论对vector性能优化的小技巧。众所周知,vector是动态数组,在长度不够时会自动扩展,其本质就是创建一个更大的数组,把原来的数组挪过去,然后清理原来的数据。根据这个特性,我们可以在使用vector前利用reserve()来给vector设置一个保守的大小,避免一直重复这个“动态扩展”的操作,从而提高性能。该技巧

如果vector冗余大量空间,你会怎么做?

在上一节里我们讨论了通过reserve()这个成员函数去预存空间,避免“动态扩展行为”来影响效率。如果还有读者不知道这个小技巧的,可自行跳转《vector性能优化小技巧》。如果说预存reserve()是“增”,那么肯定会有“减”这个概念。在实际上工作中,当我们发现vector预存的空间太大,远远高于需求时,我们就需要“减”的这个操作,将闲置空间释放提供更多的内存。此操作我有两个方法,分别是通过sw

C++STL之Set容器

C++STL之Set容器1.简介Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,自动为其元素排序。Set集合的底层使用一颗红黑树(可能读者对此不太了解,等但学到树论与图论的章节的时候就会……

vector<bool> - STL容器的败笔!

vector,被称为“最好的数组”,凭借其动态扩展能力和丰富的成员函数深受c++程序员和算竟选手喜爱,大家对此深信不疑。有一天,你听到个消息说:vector&lt;bool&gt;不是STL容器!此时,大家心里恍如晴天霹雳:要知道vector是世界上最好的序列式容器,谁敢在此质疑vector的完美设计?起初,笔者也同大家一样感到莫名其妙,迅速打开dev,创建vector&lt;bool&gt;看看

C++STL之Vector容器

C++STL之Vector容器1.概念Vector可以翻译为向量,或向量数组,至于为什么以向量命名,可以理解为一维空间也是存在向量的。Vector是最简单的序列是容器,就像数组一样,向量使用连续的存储位置作为元素,这意味着它们的元……