Nam*_*ame 2 c++ move-semantics c++17
我试图通过 string_view 将一些字符串保存到第二个数据容器,但遇到了一些困难。事实证明,字符串在 move() 之后改变了它的底层数据存储。
我的问题是,为什么会发生这种情况?
例子:
#include <iostream>
#include <string>
#include <string_view>
using namespace std;
int main() {
string a_str = "abc";
cout << "a_str data pointer: " << (void *) a_str.data() << endl;
string_view a_sv = a_str;
string b_str = move(a_str);
cout << "b_str data pointer: " << (void *) b_str.data() << endl;
cout << "a_sv: " << a_sv << endl;
}
Run Code Online (Sandbox Code Playgroud)
输出:
a_str data pointer: 0x63fdf0
b_str data pointer: 0x63fdc0
a_sv: bc
Run Code Online (Sandbox Code Playgroud)
感谢您的回复!
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |