操纵对STL容器中元素的引用(例如向量)

时间:2012-11-03 13:02:34

标签: c++

直接操作STL容器中元素的引用/指针是否总是安全的?

例如,假设我们有

inline void swap(int &a, int &b){int temp=a;a=b;b=temp;}

vector<int> array;

包含{1,2,3,4,5}

使用以下电话是一种好习惯吗?

swap(array[1],array[3]);

3 个答案:

答案 0 :(得分:3)

是的,这样可以正常工作。

使用std::swap而不是自己的功能会更好。

答案 1 :(得分:2)

std::vector::operator[]如果您无法对其进行任何操作,那么返回引用就没有意义了。你的代码非常好。

答案 2 :(得分:2)

对于序列容器来说没问题。另一方面,关联容器有自己的概念,即具有特定值的元素所在的概念,因此不要混淆其元素的值。