社区
C++ 语言
帖子详情
请教一个stl对象互相赋值的问题 (两个对象使用不同的alloc)
wangyaosuper
2009-02-04 04:59:28
假如我的程序中的两个stl对象,配制使用了不同的alloc,他们之间可以互相赋值吗?
如
string<allocator_myself<char>> str1;
string<allocator_def<char>> str2;
str1 = str2; ///这样赋值合法吗?可以编译吗?
如果这样不可以赋值,那么采用什么方法可以实现呢?
...全文
171
19
打赏
收藏
请教一个stl对象互相赋值的问题 (两个对象使用不同的alloc)
假如我的程序中的两个stl对象,配制使用了不同的alloc,他们之间可以互相赋值吗? 如 string<allocator_myself> str1; string<allocator_def> str2; str1 = str2; ///这样赋值合法吗?可以编译吗? 如果这样不可以赋值,那么采用什么方法可以实现呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
daidodo
2009-02-05
打赏
举报
回复
[Quote=引用 16 楼 yuzl32 的回复:]
这个属于不同类型,不能直接赋值!
[/Quote]
可以用其他函数实现赋值,例如:
string <allocator_myself <char> > str1;
string <allocator_def <char> > str2;
str1.assign(str2.begin(),str2.end());
几乎所有容器类都有assign函数
yuzl32
2009-02-05
打赏
举报
回复
这个属于不同类型,不能直接赋值!
Proteas
2009-02-05
打赏
举报
回复
不对,这是泛型的,内存分配器不同就是不同的类型,
如果没有定义转换,
应该就是编译不过去的.
Proteas
2009-02-05
打赏
举报
回复
应该是可以的.
等下自己试试.
csgdseed
2009-02-05
打赏
举报
回复
应该不行
heeten
2009-02-05
打赏
举报
回复
ding
ljmscsq
2009-02-05
打赏
举报
回复
顶下吧。我也不知道
pengzhixi
2009-02-05
打赏
举报
回复
不同类型的值赋值很容易出错啊,如果明确定义了类型转换情况又不同了.
nineforever
2009-02-04
打赏
举报
回复
[Quote=引用楼主 wangyaosuper 的帖子:]
假如我的程序中的两个stl对象,配制使用了不同的alloc,他们之间可以互相赋值吗?
如
string <allocator_myself <char>> str1;
string <allocator_def <char>> str2;
str1 = str2; ///这样赋值合法吗?可以编译吗?
如果这样不可以赋值,那么采用什么方法可以实现呢?
[/Quote]
不可以。要赋值可以用std::copy,或者用str1 = str2.c_str()
waizqfor
2009-02-04
打赏
举报
回复
[Quote=引用楼主 wangyaosuper 的帖子:]
假如我的程序中的两个stl对象,配制使用了不同的alloc,他们之间可以互相赋值吗?
如
string <allocator_myself <char>> str1;
string <allocator_def <char>> str2;
str1 = str2; ///这样赋值合法吗?可以编译吗?
如果这样不可以赋值,那么采用什么方法可以实现呢?
[/Quote]
我感觉可以吧 试了一下 拿的VC 挺诡异
猫已经找不回了
2009-02-04
打赏
举报
回复
自己试一下就知道了撒
Vegertar
2009-02-04
打赏
举报
回复
有时间在这里等不若自己写两个allocator试试
wangyaosuper
2009-02-04
打赏
举报
回复
有没有不一般的想法??
jichre
2009-02-04
打赏
举报
回复
根据一般的想法,应该不行。
jichre
2009-02-04
打赏
举报
回复
还有你那个格式应该是错误的,>>这两个不应该挨在一起的,应该有空格:
string <allocator_myself <char> > str1;
string <allocator_def <char> > str2;
wangyaosuper
2009-02-04
打赏
举报
回复
紧急求助,所以没有时间自己试,
我个人认为应该是编译不过的, 但也想不到什么好的方法。
jichre
2009-02-04
打赏
举报
回复
这个你自己试一试啊,把程序敲上去,看编译器怎么说。
如果是vetor等容器类型当然不能用了。
taodm
2009-02-04
打赏
举报
回复
可不可以编译这样的问题,自己试一下就知道的,也来问?太懒了吧。
lgccaa
2009-02-04
打赏
举报
回复
up
有关SGI
STL
的
alloc
本文深入探讨
STL
中的空间配置器概念,包括标准配置器std::
alloc
ator与SGI
STL
特有的std::
alloc
。分析了两者的实现细节,以及如何通过多级配置策略优化内存管理和性能。
STL
源码剖析 --- 空间配置器 std::
alloc
本文详细介绍了
STL
中空间配置器std::
alloc
的内部工作原理,包括其双层配置策略,以及如何通过simple_
alloc
进行封装。
STL
的空间配置器分为直接
使用
M
alloc
()和free()的第一级配置器,以及针对小块内存优化的第二级配置器,以减少内存碎片。此外,文章还提到了用于
对象
构造和析构的全局函数,以及uninitialized_copy等高效初始化内存的函数。
stl
_
alloc
.h源码剖析
本文深入剖析
STL
源码中的内存管理机制,包括
stl
_
alloc
.h和
stl
_construct.h文件,详细介绍了内存配置与释放、
对象
构造与析构的操作。探讨了SGI设计哲学下,多线程环境下内存配置器如何应对内存不足和内存碎片
问题
。
《
STL
源码剖析》——空间配置器
alloc
本文详细介绍了
STL
中空间配置器
alloc
的工作原理,包括两级配置器(__m
alloc
_
alloc
_template和__default_
alloc
_template)的内存申请过程,以及内存初始化涉及的五个全局函数。内容涵盖内存申请的代码实现,以及
不同
类型的内存初始化策略。同时,提供了memory.h源码和结构图作为参考。
【试着自己写
一个
STL
】Knife_
STL
——
alloc
.h
本文深入探讨
STL
中的
alloc
ator实现,包括其在内存分配、释放和重分配过程中的作用,以及如何通过
不同
类型的
alloc
ator(如m
alloc
_
alloc
、list_
alloc
、bitmap_
alloc
和hash_
alloc
)来优化内存管理。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章