std::vector から多くの値を読み取るループがプログラムのボトルネックであると仮定すると、変更することが提案されています
void f(std::vector<int> v)
{
...
while (...)
{
...
int x = v[i] + v[j]
...
}
}
に
void f(std::vector<int> v)
{
int* p_v = &v[0];
...
while (...)
{
...
int x = p_v[i] + p_v[j]
...
}
}
[] 演算子をバイパスすることで、実際にパフォーマンスが向上しますか?