永发信息网

程序最下面这句T& operator[](int pos){return data[pos];}为什么要引用&operator

答案:2  悬赏:80  手机版
解决时间 2021-04-07 21:00
#include
using namespace std;
typedef int T;
class Vector{
T* data;
int size;
int max;
void expend(){
max = 2*(max==0?1:max);
T* n = new T[max];
for(int i=0; i n[i] = data[i];
}
delete[] data;
data = n;
}
public:
friend ostream&
operator<<(ostream&o,const Vector&v){
for(int i=0; i o << v.data[i] << ' ';
}
return o;
}
explicit Vector(int len=0):size(),max(len)
{data = new T[len];}
~Vector(){delete[] data;}
Vector(const Vector& v){
size = v.size;
max = v.max;
data = new T[max];
for(int i=0; i data[i] = v.data[i];
}
}
Vector& operator=(const Vector&v){
if(this==&v) return *this;
delete[] data;
data = new T[v.max];
for(int i=0; i data[i] = v.data[i];
}
size = v.size;
max = v.max;
return *this;
}
//增加一个数据元素
void insert(const T& d){
insert(d, size);
}
void insert(const T& d, int pos){
if(pos<0||pos>size) pos=size;//越界放到最后
if(size==max){ expend();}
for(int i=size; i>pos; i--){
data[i] = data[i-1];
}
data[pos] = d;
size++;
}
//删除指定位置的数据
bool erase(int pos){
if(pos<0||pos>=size) return false;
for(int i=pos; i data[i] = data[i+1];
}
size--;
return true;
}
//删除所有等于d参数元素
void remove(const T& d){
for(int i=0; i if(data[i]==d) erase(i--);
}
}
//修改指定位置的数据
bool set(const T& d, int pos){
if(pos<0||pos>=size) return false;
data[pos] = d;
return true;
}
//根据指定位置返回值
T& at(int pos){
if(pos<0||pos>=size) throw "out_of_index";
return data[pos];
}
//返回当前长度
int getSize(){return size;}
T& operator[](int pos){return data[pos];}
};
最佳答案
如果时读的话同不加&对int类型的数据是一样的,如果是结构体等,会少一次拷贝操作
写的话就很不同了Vector m(10);
m[1]=15;
如果不用引用下次读m[1]不会修改m[1]的内容只是修改返回的临时变量。
全部回答
没看懂什么意思?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
戴尔optiplex7020 mt cto怎么样
兄弟热干面长葛分店在哪里啊,我有事要去这个
谁能从香港带来王薇薇梦想公主香水?就是黄色
学习时别人说话我会烦躁 很讨厌说话的人 是心
剑网三帮会怎么开瑰石,问一个比较小白的问题
单选题一般情况下,下列不能用2n表示的是A.一
恐龙什么时候出现的?
海螺与鸭蛋黄相克吗?
遂宁有到重庆北南广场的火车么?该怎么走?
2013年农历十一月初五丑时出生的人属于什么命
下陆区黄石一品香烧菜馆(安达路店)地址有谁知
下列作品、作家、国别的对应关系有误的一组是
单选题下列各项中,标点符号的使用不合乎规范
亥窑村地址在什么地方,我要处理点事!
1978年农历4月18日出生的人运气
推荐资讯
正版球衣穿不穿好?
主营营业务收入中包含应收账款吗
银行运营文化标语,中国银行的服务标语是什么
关于要睡觉的句子,关于睡觉的诗句
排量1.8的车交多少车船使用税
阅读下面的文言文,完成小题。(12分)雨后游
我以前唱歌不会用气唱导致怎么练习唱歌都没有
o十o二1打一成语
徐宁买了40个鸡蛋,一共重2·48千克。平均每
如图是2007年12月22日“南海一号”整体打捞出
哥们请帮看下这个手串
女孩肚脐上两指是什么器官
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?