一、动态数组 【new的局限性】 new将内存分配和对象构造组合在一起,同样delete将对象析构和内存释放组合在一起 我们分配单个对象时,通常希望将内存分配和对象初始化组合在一起(我们知道对象应有什么值),但分配一大块内存时,我们往往计划在这块内存上按需构造对象→将内存分配和对象构造分离,即我们可 ...
分类:
其他好文 时间:
2017-10-29 20:22:48
阅读次数:
176
iOS项目中引入c++库,编译链接时报如下错: "std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from: "std::_List_node_base::hook(std::_List_node_bas ...
分类:
移动开发 时间:
2017-10-25 21:33:31
阅读次数:
275
C++ 空间配置器(allocator) 在STL中,Memory Allocator 处于最底层的位置,为一切的 Container 提供存储服务,是一切其他组件的基石。对于一般使用 STL 的用户而言,Allocator 是不可见的,如果需要对 STL 进行扩展,如编写自定义的容器,就需要调用 ...
分类:
编程语言 时间:
2017-10-19 00:56:11
阅读次数:
252
1 int xfun(int *a,int n) 2 { 3 int x = *a;//a的类型是int *,a+1跳动一个int的长度 4 for (int *pa = a + 1; pa < a + n; pa++)//指向同一个类型的指针比较大小,相减是两者之间的元素个数 5 { 6 //st ...
分类:
其他好文 时间:
2017-10-15 11:06:56
阅读次数:
206
1、vector是定义于名称空间(namespace)std内的模板,其定义在头文件<vector>中。 vector中的元素可以是任意类型T,必须具备可设置、可复制两个属性。模板法第二个参数是关于空间配置器设置的,用于定义内存模型,默认内存模型是C++标准库提供的allocator。 2、vect ...
分类:
其他好文 时间:
2017-10-03 10:36:57
阅读次数:
144
ACE中的很多类使用了单例模式,为了便于管理单例对象,ACE使用了一个组件——ACE_Framework_Component来专门管理。 我们以ACE_Reactor这个单例类的创建和释放为例。 1、Reactor.cpp中,包括了类的创建释放。其中,单例模式的接口有两个instance函数提供—— ...
分类:
其他好文 时间:
2017-09-29 19:44:57
阅读次数:
174
信号是6,abort调用的。总体而言,当你malloc的指针为A,但是你free的指针不是A,则容易出这个错,当然假设你free的刚好是别人malloc的,则还是正常。 还有一种是你free的地址在glibc里面记录的size有问题,也会报这个错,本文就是第二个情况。 abort的堆栈如下: #0 ...
分类:
其他好文 时间:
2017-09-28 15:09:22
阅读次数:
198
本文仅仅是个人学习的过程中结合网上博文,对STL的整理,也仅仅是简介。仅为个人学习笔记。 一、STL简介(摘自:晨光(Morning)) STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Stan ...
分类:
编程语言 时间:
2017-09-03 21:08:20
阅读次数:
206
说明AGG采用new/delete函数操作堆内存,有时候并不是最佳的选择。另一方面,STL的内存分配策略太繁琐,因此没有采用。在agg_allocator.h文件中描述目前内存分配策略:template<classT>structallocator{staticT*allocate_array(unsignedsize){returnnewT[size];}staticvoi..
分类:
其他好文 时间:
2017-08-30 20:08:41
阅读次数:
211
vector或许是实际过程中使用最多的stl容器。看似简单,事实上有非常多技巧和陷阱。 着重看一看vector的构造,临时依照C++11: default (1) explicit vector (const allocator_type& alloc = allocator_type()); fi ...
分类:
编程语言 时间:
2017-08-10 13:20:43
阅读次数:
282