私はC++が初めてで、本「Essential C++」のいくつかの例で遊んでいます。本からこのコードを書くと:
int *find(const vector<int> &vec, int value) { ... }
g++ コンパイラで次のエラーが表示されます。
error: invalid conversion from 'const int*' to 'int *' [-fpermissive]
に変えてみます
const int *find(const vector<int> &vec, int value)
そしてそれはうまくいきます。
だから、これには何か詳細な理由があるのだろうか?ありがとう!
本のコードは次のとおりです。
int* find(const vector<int> &vec, int value) {
for(int ix = 0; ix < vec.size(); ++ix)
{
if(vec[ix] == value)
return &vec[ix];
}
return 0;
}