Имеем класс (упрощено):
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;
}
При таком подходе из функции вернётся копия элемента.
А как вернуть ссылку/указатель на элемент вектора с тем, чтобы можно было изменять сам элемент вектора (а не его копию)?