整数のベクトルのベクトルがあり、ベクトルの長さは一意です。インデックスを割り当てたい-整数 i を整数に。たとえば、ベクトル V に 2 つのベクトルが含まれ、最初のベクトル V.at(0) の長さが 2 で、2 番目のベクトル V.at(1) の長さが 4 の場合、インデックス 3 は、 2 番目のベクトル、V.at(1).at(0)。
const の正確性に関連していると思われるエラーが発生しました。どうすれば修正できますか?
Class A{
...
}
A func(int i) const {
int j = 0;
int sum = 0;
int u = 0;
// stop when pass by the j-th vector which i is found
while (sum < i){
sum = sum + V.at(j).size();
++j;
}
// return the position
u = V.at(j).at(i-sum);
return A(std::make_pair<j, u>);
}
エラーメッセージ:
error: the value of 'j' is not usable in a constant expression
return A(std::make_pair<j, u>);
^
note: 'int j' is not const
int j = 0;
^
error: the value of 'u' is not usable in a constant expression
return A(std::make_pair<j, u>);
^
^
note: 'int uid' is not const
int u = V.at(j).at(i-sum);