Problem22拷贝移动构造、数组下标重载

2020-08-19

知识点

调用拷贝、移动构造函数

这里是调用了Node类型的拷贝构造函数。

void Array::update(int &q, int &r) {
    assert(size>q && size>r);
    Array::nodes[q] = Array::nodes[r];
}

这里调用了Node类型的移动构造函数。
!!!适当使用std::move()

    Node tmp = std::move(nodes[q]);
    nodes[q] = std::move(nodes[r]);
    nodes[r] = std::move(tmp);
}

void Array::insert(int &q, int &r) {
    for(int i = size -1;i>q;i--){
        nodes[i] = std::move(nodes[i-1]);
    }
    nodes[q] = r;
}

实现拷贝、移动构造函数

虽然并不要求对Array实现···但是还是应该复习一下写法······

Array::Array(const Array &y){
    length=y.length;
    data=new Node[length];
    for (int i=0; i<length; i++) {
        data[i]=y.data[i];
    }
}

Array::Array(Array &&y){
    length=y.length;
    data=y.data;
}

数组下标运算符重载

这里实现了一个数组下标运算符的重载。

Node& Array::operator[](int index) {
    assert(size > index);
    return nodes[index];
}

思路&&总结

先读题!!!先确定Array类型里面的变量类型、函数、实现。再上手写

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容