allocator<string> alloc; auto const p=alloc.allocate(10); auto q=p; //为什么说这里q指向的是最后构造的元素之后的位置?那p指向哪? alloc.construct(q++,10,'c'); //这一句又是什么意思?为什么是p++?
alloc是一个构造器,封装对内存池的操做。 c++ primer上应该是指,q=p的时候,因为alloc尚没有构造,所以是指向第一个位置。 下句话的 construct(q++,...) ,构造了一个对象,因此q指向了第二个尚未构造的对象的位置。
allocate 就是返回一个内存的地址。 q=p并不是位置之后,p就是allocate alloc.construct(q++,10,‘c’),意思是把在q的位置创建一个10个字符'c'的string,然后把q移动到下一个位置,alloc应该是可以容纳10个string ,下一个位置是指下一个string
64,681
社区成员
250,490
社区内容
加载中
试试用AI创作助手写篇文章吧