2017-01-08 8 views
-3

/* информация об отладке предполагает, что const int не может преобразовываться в int , но когда я меняю return & vec [i]; для возврата (интермедиат) & VEC [я] */const int преобразуется в int *

int* find(const vector<int> &vec, const int value) { 
     for (int i = 0; i < vec.size(); i++) { 
      if (vec[i] == value) { 
       cout << "找到该值得地址为:" << &vec[i] << endl; 
       return &vec[i]; 
      } 
     } 
     return NULL; 
    } 
+2

В чем вопрос? –

ответ

0

Вы говорите, что функция возвращает указатель на непостоянные данные, а затем возвращает указатель на постоянные данные (vec постоянно, а также данные внутри него). Константные и непостоянные данные не совпадают.

Простым решением является изменение типа возврата на const int*.