string s1 = "Hello";
string s2;
copy(s1.begin(), s1.end(), s2.begin());
cout << s2 << endl;
这段代码看起来很简单,但在最后一行没有打印任何内容。有人可以告诉我有什么问题吗?
答案 0 :(得分:5)
目标字符串没有大小。尝试使用std::back_inserter()
:
copy(s1.begin(), s1.end(), std::back_inserter(s2));
答案 1 :(得分:3)
您正在尝试复制到s2
的内容中,但它是空的,因此会产生未定义的行为。
尝试类似:
copy(s1.begin(), s1.end(), std::back_inserter(s2));
...或:
s2.assign(s1);
......或者最干净,最明显的:
s2 = s1;
答案 2 :(得分:0)
如果您只需将字符串s1
复制到s2
,只需将s1
传递给s2
的构造函数:
string s1 = "Hello";
string s2(s1);
cout << s2 << endl;