碰到以下问题,求高手解决
1
在裘老翻译的 BS的C++ 程序设计语言中看到这样一句话
:this 并不是一个常规变量,不能取得this的地址或者给他赋值,并不是很理解啊
2
关于 vector 中的 insert(p,x)//在p前插入x,这个p是指什么啊,例如
student a;//student 为自定义的学生类
student c;
vector<student> b;
b.insert(a,c);//我想在a之前插入c,怎么用
上面的合法么??同理erase(p);是指什么啊
insert(p,first,last) //在p前插入[list:last[ 的元素;这有怎么用啊
求高手啊
[解决办法]
1. 无视
2. p,迭代器
不合法
迭代器
在位置p插入 [first,last)范围内的元素
[解决办法]
1、this本身就不是一个变量,针对每一个对象来说这家伙就是一个常量。你当然没法给一个常量赋值了。
[解决办法]
1.其实只要说一句话: this 指针不是左值.
2.
http://en.cppreference.com/w/cpp/container/vector
学习上面链接.或者看书.
[解决办法]
1、this 并不是一个常规变量,不能取得this的地址或者给他赋值。
因为我们没有必要去取得this指针的地址,或者给他赋值,所以编译器作了这样的限制。
也就是说这个变量编译器可以用,但是你不能用。
不然你把this指针的值改了那不是乱套了。
而获取this指针的值破坏了封装性。
也可以按一楼的,先无视。上面的是我个人的理解。
2、这个问题我暂时没法回答,就算给了示例你目前也比较难看懂。
首先你要先把迭代器的概念弄清楚。
对标准库有关的章节再反复看看吧。。
[解决办法]