我对 C++ 很陌生,我尝试过寻找答案并运行测试,但很多时候我都无法弄清楚导致特定行为的原因。我的问题与使用嵌套[ ]
运算符访问或修改循环中的元素有关 - 例如:
//Declare
std::vector<int> a1 {10,20,30,40} ;
std::vector<int> a2 {2,3} ;
int S2 = a2.size() ;
//Loop
for(int i = 0 ; i < S2 ; i++){
a1[a2[i]] = a1[a2[i]] + 5000 ;
}
这被认为可以吗?我不仅在常规做法方面提出问题,而且在效率和我需要考虑的任何其他潜在因素方面也提出了问题。我是否应该首先存储a[i]
在循环内的一个临时变量中,然后使用它来修改我在 vector 中的元素a2
?
我确实知道它可能不是最好的结构,我应该使用其他一些数据结构来做这种事情,但我只是想了解这是否可行,或者它是否可能导致一些未定义的行为。