直接操作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]);
答案 0 :(得分:3)
是的,这样可以正常工作。
使用std::swap
而不是自己的功能会更好。
答案 1 :(得分:2)
std::vector::operator[]
如果您无法对其进行任何操作,那么返回引用就没有意义了。你的代码非常好。
答案 2 :(得分:2)
对于序列容器来说没问题。另一方面,关联容器有自己的概念,即具有特定值的元素所在的概念,因此不要混淆其元素的值。