allocator相关内容

自定义分配器的帐户内存使用情况

我使用自定义分配器来处理多个容器中的内存使用情况。目前我使用静态变量来计算内存使用。如何在多个容器中分离此帐户,而无需重写分配器以使用不同的静态变量? static size_t allocated = 0; template class accounting_allocator { public: //类型定义 typedef T value_t ..
发布时间:2016-10-25 14:21:27 C/C++开发

自定义分配器的帐户内存使用情况

我使用自定义分配器来处理多个容器中的内存使用情况。目前我使用静态变量来计算内存使用。如何在多个容器中分离此帐户,而无需重写分配器以使用不同的静态变量? static size_t allocated = 0; template class accounting_allocator { public: //类型定义 typedef T value_t ..
发布时间:2016-10-25 13:48:33 C/C++开发

什么是分配器,它们的使用何时需要?

在C ++和标准库上阅读书籍时,我经常看到对分配器的引用。 例如,Nicolai Josuttis的 >在最后一章详细讨论它们,以及Scott Meyers的 Effective STL 中的两个项目10(“注意分配器的约定和约束”)和11(“理解自定义分配器的合法使用” 我的问题是,分配器如何代表一个特殊的内存模型?是默认的STL内存管理不够吗? 如果可能,请用简单的内存模型示 ..
发布时间:2016-10-24 13:12:02 C/C++开发

对于几个小的std ::向量的连续内存分配?

我想找到一种方法来存储几个 std :: vectors ,每个不同的但已知的,相当小的大小,在连续的内存中。我意识到我可以写我自己的类,说一个非常大的数组,并指向数组的每个子部分的开始在更大的数组中被视为一个单独的实体,但似乎应该有一个更聪明的方式做这个。 是否有使用 allocators 的方法,例如创建连续的 std :: vectors ?我想不要重新发明轮子只是因为我想要这个记忆区 ..
发布时间:2016-10-23 23:01:57 C/C++开发

编译器支持STL容器中的状态分配器

新的C ++ 11标准需要STL实现来支持容器中的状态分配器。主要的STL实现(Visual Studio 2008,2010,libstdc ++)现在是否符合这个要求?我什么都没有发现这个在MSDN或的libstdc ++文档。 解决方案 看起来像STL容器状态分配器的特点是广泛的支持已经。在大多数情况下,分配器的statefullness不会引起麻烦。什么是不广泛尚不支持是处理该问题 ..
发布时间:2016-10-23 22:33:10 C/C++开发

锁定自由竞技场分配器实现 - 正确?

一个简单的指针增量分配器(他们有一个正式名称?)我在寻找一个无锁算法。这似乎微不足道,但我想得到soem反馈,我的实现是否正确。 不是线程安全实现: byte * head; //剩余缓冲区的当前头 字节* end; //剩余缓冲区结束 void * Alloc(size_t size) { if(end-head ..
发布时间:2016-10-23 20:26:25 C/C++开发

复制状态分配器:标准库分配器语义和内部存储器

我编写一个分配器集合,目的是要在非常高性能的环境中使用,所以一点点限制使用(由编译器调解,而不是运行时错误)是可取的。我已经阅读了状态分配器的C ++ 11语义,以及它们如何被合适的容器使用。 我粘贴了一个简单的分配器下面只包含allocator对象内的一块内存。在C ++ 03中,这是非法的。 template ..
发布时间:2016-10-23 20:02:55 C/C++开发

为什么删除的内存无法重复使用

我在Windows 7上使用C ++的MSVC 9.0,并已经能够测试和重现在Windows XP SP3与MSVC 9.0。 如果我分配1 GB的0.5 MB大小的对象,当我删除它们,一切都是确定和行为正如预期。但是,如果我在删除它们时分配1 GB的0.25 MB大小的对象,则内存将保留(在地址空间监视器),从那时起只能用于小于0.25 MB的分配。 这个简单的代码将允许你通过改变哪 ..
发布时间:2016-10-23 15:01:54 C/C++开发

对标准库分配器指针类型的要求

我想写一个四叉树稀疏矩阵类。简而言之, quadtree_matrix 是零矩阵或四元(ne,nw,se,sw) quadtree_matrix 。 我想最终测试不同的分配方案,因为这可能会影响线性代数运算的性能。因此,我还将在标准分配器类型上使用模板 quadtree_matrix ,以便我可以重用现有的分配器。 必须分配两种不同类型的数据: T 或节点,其中包含四个指针T或 ..
发布时间:2016-10-23 14:43:21 C/C++开发

是Stephen Lavavej的Mallocator在C ++ 11中相同吗?

8年前,Stephen Lavavej发布了此博文,其中包含简单的分配器实现,命名为“Mallocator”。从那时起,我们已经转换到C ++ 11的时代(很快C ++ 17)...新的语言特性和规则是否会影响Mallocator,还是仍然是相关的? 解决方案 STL自己在他的 STL功能和实现技术在CppCon 2014(从26'30开始)讲话。 幻灯片在github上。 我 ..
发布时间:2016-10-23 14:06:03 C/C++开发

在具有预分配块的自定义STL分配器中重新绑定

我要建立一个自定义分配器,预先分配一个大块(数组)用于存储 N $ c> T ,然后只是增加数组内的索引来服务分配请求。 / em>想要预分配块中的元素的任何初始化,这样的东西将不起作用: T buffer [N]。 因为在这种情况下 T 的构造函数 因为我的理解是 std :: aligned_storage 不调用 T 的构造函数,我想到使用 std ..
发布时间:2016-10-23 13:44:32 C/C++开发

为字符串设置自定义分配器

我知道我可以使用语法 vector 为向量设置自定义分配器。有没有办法我可以做同样的字符串? 解决方案 是的。所有字符串类都来自类模板 basic_string ,声明如下: template, class Allocator = allocator ..
发布时间:2016-10-22 19:39:31 C/C++开发

STL Container:构造函数的Allocator参数和作用域分配器

有一个模板参数为STL容器选择自定义分配器。花了一段时间,但我想我明白它是如何工作的。不知怎的,它不是真的很好,因为给定的分配器类型不是直接使用,而是反弹到另一种类型的分配器。最后我可以使用它。 阅读 API 我认识到,还有可能给分配器作为构造函数参数。但是如何知道容器使用哪种分配器,如果它从模板参数里面重新绑定给定的分配器? 此外,我读到C ++ 11现在使用作用域分配器允许重用容器 ..
发布时间:2016-10-22 18:11:05 C/C++开发

有一个allocator使用alloca,否则是C ++ STL兼容?

我有两个问题: 1)是否可以实现一个使用alloca在堆栈上分配内存的分配器,否则是C ++ STL兼容? p> 如果有代码,你可以让我快乐,只需指向我的URL。 :-) 如果没有代码,也许你可以草拟函数allocate和deallocate? 2)如果上面的问题的答案是'yes',我想了解如何在类成员的堆栈上分配内存。作为示例,考虑 std :: vector ..
发布时间:2016-10-17 10:14:30 C/C++开发