我知道有一个指向向量元素的指针是一个坏主意,因为在扩展时,所涉及的内存地址将改变,从而使指针无效.但是,如果我只是使用一个包含我想要访问的元素的索引号的整数呢?随着向量增长,这会失效吗?我在想什么看起来像这样:
#include <vector>
class someClass{
string name
public: string getName(){return name;}
};
vector<someClass> vObj;
int currIdx;
string search;
cout<<"Enter name: ";
cin>>search;
for(int i=0; i<vObj.size(); i++){
if(vObj[i].getName()==search)
currIdx = i;}
Run Code Online (Sandbox Code Playgroud)
不,当向量扩展时,索引号当然不会失效.如果擦除前一个元素,它们将无效(在某种意义上,您不再在常量索引处找到相同的元素),但是:
vector: 3 5 1 6 7 4
在这里,vector[2] == 1.但是如果你擦掉vector[1](5),那么之后,vector[2] == 6.
| 归档时间: |
|
| 查看次数: |
5633 次 |
| 最近记录: |