Задать вопрос
IDma88
@IDma88
Программист C++

Как вернуть ссылку/указатель на элемент вектора?

Имеем класс (упрощено):
class CUnit
{
public:
    bool FindElement(const string& search, CElement& result);
private:
    vector<CElement> mElements;
};

Функция FindElement имеет примерно такой вид:
bool CUnit::FindElement(const string & search, CElement& result)
{
    vector<CElement>::iterator it;

    for (it = mElements.begin(); it != mElements.end(); it++)
    {
        if ( <тут проверка соответствие критерию> )
        {
            result = *it;
            return true;
        }
    }
    return false;
}

При таком подходе из функции вернётся копия элемента.
А как вернуть ссылку/указатель на элемент вектора с тем, чтобы можно было изменять сам элемент вектора (а не его копию)?
  • Вопрос задан
  • 778 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
1.
bool FindElement(const string& search, CElement*& result);

2. CElement* FindElement(const string& search);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы