gpt4 book ai didi

C++11 实现移动构造函数并移动成员 vector

转载 作者:行者123 更新时间:2023-11-30 02:47:50 43 4
gpt4 key购买 nike

好的,我先贴出代码,然后再问我的问题。

#include<vector>
#include<string>

using std::vector;
using std::string;

class MyStringContainer
{
public:
MyStringContainer(vector<string> strVec): _strVec(strVec){;}
MyStringContainer(MyStringContainer&& rhs): _strVec(move(rhs._strVec)){;}
private:
vector<string> _strVec;
}

int main()
{
vector<string> dummyVec(1000000, "arbitrary string");

MyStringContainer strCon1(dummyVec);
MyStringContainer strCon2(move(strCon1));
}

所以我只是花了一些时间学习移动语义,我想我已经掌握了关于如何交换原始和/或智能指针以及将丢弃的指针设置为 nullptr 的基本概念。但是,在处理 vector (以及所有实现移动语义的容器)时,我不能 100% 确定我上面的代码是否会正确地“nullptr”源 vector 的指针元素。 std::vector 类的实现是否已经为我处理了这个问题?

最佳答案

std::vector 的实现会为您处理这个问题。

关于C++11 实现移动构造函数并移动成员 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22438460/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com