请教一个stl对象互相赋值的问题  (两个对象使用不同的alloc)

wangyaosuper 2009-02-04 04:59:28
假如我的程序中的两个stl对象,配制使用了不同的alloc,他们之间可以互相赋值吗?



string<allocator_myself<char>> str1;

string<allocator_def<char>> str2;

str1 = str2; ///这样赋值合法吗?可以编译吗?


如果这样不可以赋值,那么采用什么方法可以实现呢?

...全文
170 19 打赏 收藏 转发到动态 举报
写回复
用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 挺诡异
  • 打赏
  • 举报
回复
自己试一下就知道了撒
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

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧