腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
Hinnant堆栈
分配
器和异常
c++
、
exception
、
heap-memory
、
allocation
、
stack-memory
我想将Hinnant的堆栈
分配
器(,)与
STL
容器
结合使用,但我希望修改它,使动态内存
分配
永远不会发生。要实现这一点,必须做的一件事是,如果堆栈提供的缓冲区上没有空间,则必须替换
分配
/重新定位方法中的
新
/delete调用。 但我该如何处理例外情况呢?
STL
容器
可能抛出异常。内存是否保留给
放置
在静态内存中的异常?还是仍然有任何
分配
发生在“未指定的方式”,这意味着异常将被动态存储?引用的描述带来了很大
浏览 3
提问于2018-06-01
得票数 6
回答已采纳
2
回答
STL
容器
分配
位置
新
c++
、
stl
、
vector
、
containers
、
placement-new
这意味着向量保持
分配
的内存,并且必须对被推入其中的对象进行就地构造(=
新
的
放置
)。这是一个有效的假设吗?另外,这是否意味着
容器
正在手动调用析构函数,而不是调用delete?那么,这种行为是驱动
分配
器行为的原因吗?请帮帮忙。谢谢
浏览 0
提问于2011-03-15
得票数 5
回答已采纳
3
回答
用于管理不同内存空间的
STL
自定义
分配
器
c++
、
stl
、
memory-management
我想使用
STL
自定义
分配
器类的不同实例来管理不同的内存空间,然后能够为
STL
容器
指定一个
分配
器实例,以便每个
容器
只从其
分配
的内存空间中提取。但我不知道我该怎么做。我知道如何将
分配
器类型传递到
STL
容器
的模板参数中,但我想要的是类似于将
分配
器实例传递到
STL
容器
的构造函数中的内容。在
STL
中有没有办法做到这一点?
浏览 0
提问于2009-10-22
得票数 8
回答已采纳
2
回答
一个std::map会锁定它的节点以防止其他进程删除它们吗?
c++
、
locking
、
stdmap
、
plc
如果该对象被
分配
给全局PLC变量,以允许从每个任务访问该特定对象,则指针在此处。该任务还会检查每个任务周期,以确定是否将变量插入到映射中。在这种情况下,它会再次尝试删除插入节点,只是出于测试目的。
STL
问题?空指针问题?或者可能是plc供应商的std库的特定实现的问题?任何与访问违规相关的帮助都将不胜感激! 这里是提到的对象的代码片段,我删除了与问题无关的所有内容,只是为了得到一个提示。
浏览 8
提问于2013-04-30
得票数 0
4
回答
为什么emplace/_前台/_back不返回引用?
c++
、
c++11
、
stl
、
return-value
在使用std::vectors、std::lists (或其他
STL
容器
)时,我经常这样写,因为代码短(而不是每次都
放置
显式vec[index] )和内存
分配
效率(避免复制/移动),我想我不是唯一这样做的人std::vector<A> vec;A &element = vec[vec.size()-1];为什么
STL
容器
的emplace**,**
浏览 1
提问于2014-06-26
得票数 24
回答已采纳
5
回答
谁有一个很好的C++共享内存
容器
?
c++
、
stl
、
shared-memory
我早就想要一个可以放在共享内存段或内存映射文件中的STLish
容器
。 我考虑过使用自定义
分配
器和
新
的
放置
来将常规
STL
容器
放入共享内存段。(就像这个ddj )。问题是
STL
容器
内部会有指向它们拥有的内存的指针。因此,如果共享内存段或内存映射文件加载到不同的基址(可能是在随后的运行中,或者在第二个进程中),那么内部指针就会突然失效。据我所知,自定义
分配
器方法只有在您始终可以将内存段映射到同一地址的进程中时才有效。至少在内存映射文件方面,
浏览 0
提问于2008-11-04
得票数 8
回答已采纳
2
回答
使用Malloc将内存
分配
给
STL
列表?
c++
、
stl
、
segmentation-fault
、
malloc
、
new-operator
我试图使用malloc将内存
分配
给
stl
列表。我很好地使用了
新
,如下所示:list< pair<int, int> > *adj;为什么malloc不能用于将内存
分配
给
STL
容器
?
浏览 1
提问于2021-03-20
得票数 0
回答已采纳
3
回答
C++
STL
问题:
分配
器
c++
、
stl
我有一个关于C++
STL
的(可能很愚蠢的)问题。当我创建一个
容器
(向量、集合、映射等)时,它是在堆栈上还是堆上
分配
的?如果我设置了一个集合并
放置
了500万个字符串,我需要担心堆栈溢出吗?
浏览 2
提问于2008-08-28
得票数 6
回答已采纳
3
回答
是否可以编写自定义
STL
分配
器,它使用指向用户提供的
分配
函数的指针?
c++
、
allocator
我们有一个通过extern "C"提供C接口的库,它是从C代码中使用的,但为了方便起见,它内部使用了
STL
容器
和一些C++特性,比如RAII。现在有一个
新
的要求,即库应该能够获取来自客户端代码的自定义malloc和free函数的指针,并将其用于内部的
分配
。我可以将它们放到库的上下文结构中,并在需要的地方使用它们,但是将它们与
STL
一起使用是令人费解的.我查看了
分配
器类,但似乎
STL
容器
必须能够使用默认的构造函数来创建
分配</
浏览 4
提问于2015-03-11
得票数 2
回答已采纳
2
回答
编译器对
STL
容器
中有状态
分配
器的支持
c++
、
stl
、
c++11
、
containers
、
allocator
新
的C++11标准要求
STL
实现支持
容器
中的有状态
分配
器。主要的
STL
实现(Visual Studio2008,2010,libstdc++)现在是否符合这个要求?
浏览 1
提问于2011-07-28
得票数 11
回答已采纳
2
回答
在dll之间使用
stl
时遇到问题。
c++
、
windows
、
dll
、
stl
我在dll中有一个向量(或字符串),通过它的引用或指针在另一个dll中修改它是否安全,比如将
新
成员推入向量或更改字符串的值?不知何故,当我这样做的时候,有时会发生崩溃,但我不知道为什么。
浏览 1
提问于2012-06-07
得票数 2
1
回答
在进程之间移动
STL
对象
c++
、
stl
我试图通过两个机器( Master和Slave )之间的套接字在两个进程之间传输一个Master(通过在固定内存区域中
放置
新
位置来实例化)。
容器
可能希望/需要的任何内存
分配
到内存中的固定位置。例如,所有Page对象和
STL
内部结构都在这个固定内存区域中实例化。这确保了std::map对象和
分配
器都
放置
在一个固定的内存区域中。我使用GDB来确保map和
分配
程序的行为正确(使用的所有内存都在固定区域,应用程序的正常堆上没有任何东西)。 假设Mas
浏览 4
提问于2012-02-11
得票数 4
回答已采纳
3
回答
当我只需要覆盖
新
的和删除的时候,为什么我要为
STL
容器
编写自定义
分配
器呢?
c++
、
memory-management
、
dynamic-memory-allocation
、
c++20
、
allocator
每个模块将与主模块接口,请求一个内存块来管理,这些内存将是堆栈、线性、池、块
分配
器等,它们管理来自主池
分配
器的分区的
分配
。我面临的问题是,我是否应该为各种
STL
容器
编写自定义allocator_traits来与这些
容器
进行接口;或者我是否应该忽略适配器的概念,而只是重载
新
的和删除来使用自定义池
分配
器/管理器,即主池
分配
器/我感兴趣的是,为
STL
容器
设置单独的
分配
浏览 9
提问于2020-10-31
得票数 3
回答已采纳
4
回答
关于std::向量的第二个参数
c++
、
vector
、
allocator
从上面的链接来看,它是为了:
分配
器:用于定义存储
分配
模型的
分配
器对象的类型。默认情况下,使用T类型的
分配
器类模板,它定义了最简单的内存
分配
模型,并且与值无关。 关于这件事有什么建议吗?
浏览 5
提问于2010-12-14
得票数 10
回答已采纳
3
回答
使用placement new处理内存
c++
、
memory-management
、
placement-new
为了我的学习,我在练习
新
的安置。最初,我认为placement new将自动管理内存,并且不会使变量重叠,但我认为情况并非如此(请纠正我并强调这一点)。下面的代码似乎在相同的地址位置
分配
新
的变量。上面的做法是好的(可能不是因为它可能会在改变循环条件时溢出
容器
)还是
放置
新
的
容器
应该只用于一次性
分配
变量。如果我想在单个
容器
中
分配
变量,而不是一次性地检查边界泄漏,那么使用placement new来
分配
变
浏览 1
提问于2013-07-23
得票数 2
回答已采纳
1
回答
现代C++中的类型擦除
分配
器
c++
、
c++11
、
stl
、
type-erasure
、
allocator
像std::vector和std::map这样的“经典”
STL
容器
将它们的
分配
器类型作为模板参数。另一方面,一些
新
的
分配
器感知类(如std::shared_ptr和std::tuple )使用类型擦除来“隐藏”有关
分配
程序的信息,因此它不构成类型签名的一部分。问题: 将std::vector<T, std::allocator<T>>和std::vector<T, MyAllocator>视为不同的类型被认为是可取的,还是在编写
STL</e
浏览 7
提问于2014-10-23
得票数 10
回答已采纳
9
回答
我应该存储整个对象,还是将指向对象的指针存储在
容器
中?
c++
、
stl
、
pointers
从头开始设计一个
新
的系统。我将使用
STL
来存储某些长期对象的列表和映射。问:我是否应该确保我的对象有拷贝构造函数,并在我的
STL
容器
中存储对象的副本,或者通常情况下,更好的做法是自己管理生命周期和作用域,只在我的
STL
容器
中存储指向这些对象的指针?使用指针有两个非常明显的缺点: 1)我必须自己在
STL
之外的作用域中管理这些对象的
分配
/释放。2)我无法在堆栈上创建临时对象并将其添加到我的
容器
中。 我还有什么遗漏的吗?
浏览 77
提问于2008-09-26
得票数 165
回答已采纳
5
回答
使用基于动态/状态的
分配
器的
STL
实现?
c++
、
stl
、
allocator
有人知道
STL
实现允许在使用之前将动态
分配
器传递到
容器
的实例中吗?场景是,我们有一个通用的内存
分配
器来管理许多内存池,并且对于
stl
::vector的每个实例,我们希望从不同的内存池中
分配
每个实例。标准
STL
实现的问题是,您只能基于类型定义内存池,即所有int类型的向量都将从同一个池中
分配
。我已经把默认的
stl
::allocator换成了一个有状态的
stl
::allocator,也就是我们想要从其中
分配</e
浏览 1
提问于2011-02-04
得票数 6
2
回答
我可以使用
stl
分配
器将整个
stl
容器
及其内容(键和值)存储在我创建的内存块中吗?
c++
、
memory-management
、
stl
、
allocator
我试图了解是否可以使用
stl
分配
器(
stl
allocator,)或其他C++机制来实现我的目的。明确地说,当我说“
容器
,包括键和值”时,我指的是通常由
容器
内的代码在堆上
分配
的所有内存位。我意识到,有些回复可能是“不要”,但请幽默我,并假设我有一个很好的理由想要把所有
浏览 5
提问于2015-09-18
得票数 4
回答已采纳
2
回答
使用move插入到
STL
容器
中
c++11
、
stl
我试图更好地理解在将元素插入到
STL
容器
中时move是如何工作的。我正在看一段代码,其中一个对象是使用new (在堆上创建的)
分配
的。稍后,当插入完成时,看起来
STL
容器
分配
了一个
新
对象并调用了move构造函数。有没有办法让
STL
容器
直接使用对象(接管被
分配
的对象(ptr) )?然而,这个对象是不是由于
STL
代码执行了一个
新
的OR操作而创建的,即通过值将对象传递给一个函数(与<em
浏览 1
提问于2014-12-30
得票数 0
点击加载更多
相关
资讯
内核是如何给容器中的进程分配CPU资源的?
WEMIX计划推出Zero Minting政策,通过新分配代币、硬分叉等进行新的奖励分配
FDA新批:XACT公司的免手动器械放置机器人
新电车难题:用算法来分配社会悲剧
5 千字长文+ 30 张图解 | 陪你手撕 STL 空间配置器源码
热门
标签
更多标签
云服务器
ICP备案
对象存储
云点播
即时通信 IM
活动推荐
运营活动
广告
关闭
领券