Здравствуйте, Towelie, Вы писали:
T>Здравствуйте, я передаю итераторы начала и конца std::map в класс и в нем изменяю некоторые значения, но:
T>T> typedef std::map<std::string, float> myOptions;
T> myOptions::iterator optIT;
T> size_t i = 0;
T> for(myOptions::iterator optIT = optionsBegin; optIT != optionsEnd; optIT++)
T> {
T> (*optIT) = std::pair<std::string, float>(Text[i]), utility::parseFloat(Edit[i]);
T> {
T>
T>Код присвоения значения вызывает ошибку :
T>T>error C2678: binary '=' : no operator found which takes a left-hand operand of type 'const std::string' (or there is no acceptable conversion) c:\program files\microsoft visual studio 10.0\vc\include\utility
T>
T>Читая MSDN и форумы, я не понял как обойти эту проблему, подскажите пожалуйста.
Но в чем проблема-то? Приведенный фрагмент (псевдокода) пытается сделать что-то не очень понятное: что здесь i, Text и Edit?
Что здесь первично, а что строится? На входе пары ключ-значение, и надо построить map? Или задан map, и надо его модифицировать?
Вот когда это станет ясно, тогда и проблема исчезнет сама собой.