首页 > 解决方案 > c++字符串使用assign函数和直接使用'='改变值的区别

问题描述

例如,这段代码

std::string a("this is a string");
std::string b;
b = a;
std::string c;
c.assign(a);

B和C本质上有区别吗?</p>

标签: c++c++11

解决方案


来自cppreference

2)basic_string& assign( const basic_string& str );

...

2) 用 str 的副本替换内容。相当于*this = str;。特别是,可能会发生分配器传播。(C++11 起)

所以这也是一样的。


推荐阅读