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类型里面的变量类型、函数、实现。再上手写