- 博客(3)
- 收藏
- 关注
原创 修剪vector中过剩容量的方法
一句话 vector(contestants).swap(contestants); 其中contestants为capacity很大,但是size很小的vector。这里先用copy ctor创建了一个临时对象,然后和contestants交换。之后编译器会自动释放原来那个大capacity的vector堆,此时contestants就是一个大小合适的vector了。
2015-02-11 16:52:41 374
原创 模板类中定义模板函数
用模板类和模板函数是C++程序猿必须掌握的技能。然而要充分运用编译器的推导能力则不简单。 需求:建立一个表格类, 每一列的类型可以任意指定(编译期指定),每一行的元素可以任意指定(运行期确定)。列数可变(编译期指定),行数可变(运行期确定)。 这里特意强调了编译期和运行期,就是为了最大程度利用编译器的推导能力,进行编译期计算,以达到(接近)最高效率。 So, let‘
2015-02-10 20:44:11 1023
原创 stl中remove和remove_if的陷阱
写程序时遇到这样一个需求: 将map容器中的特定值删除。很容易就想到了remove_if。 remove_if(myMap.begin(), myMap.end(), myCmpfn()); 后来发现compile error。那就换最原始的写法,不用remove_if。 for(auto it = myMap.begin; it != myMap.end(); ) {
2015-02-03 21:18:57 495
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人