Станд. константы C++:: отобразитесь ссылке не удается скомпилировать

Если ваш объект Flight реализует Comparable, и вы можете установить собственную логику для сравнения нужных полей, тогда вы можете просто использовать функцию Arrays.sort (). Смотрите здесь пример: https://www.tutorialspoint.com/java/util/arrays_sort_super.htm

15
задан Deduplicator 12 October 2018 в 02:23
поделиться

4 ответа

Да Вы не можете использовать operator[]. Использовать find, но обратите внимание, что это возвращается const_iterator вместо iterator:

std::map<std::string, std::string>::const_iterator it;
it = map.find(name);
if(it != map.end()) {
    std::string const& data = it->second;
    // ...
}

Это похоже с указателями. Вы не можете присвоиться int const* кому: int*. Аналогично, Вы не можете присвоиться const_iterator кому: iterator.

26
ответ дан 1 December 2019 в 01:00
поделиться

Когда Вы используете оператор [], станд.:: карта ищет объект с данным ключом. Если это не находит никого, это создает его. Следовательно проблема с константой.

Используйте находят метод, и Вы будете в порядке.

Можно ли понравиться почтовому индексу о том, как Вы пытаетесь использовать, находят ()? Правильный путь был бы:

if( map.find(name) != map.end() )
{
   //...
}
7
ответ дан 1 December 2019 в 01:00
поделиться

Поскольку Ваша "константа не соответствовала ошибкам итератора":

найдите (), имеет две перегрузки:

      iterator find ( const key_type& x );
const_iterator find ( const key_type& x ) const;

Мое предположение - то, что Вы получаете эту ошибку, потому что Вы делаете что-то как присвоение итератора неконстанты (слева) к результату a find() запрос a const карта:

iterator<...> myIter /* non-const */ = myConstMap.find(...)

Это привело бы к ошибке, хотя, возможно, не тот Вы видите.

2
ответ дан 1 December 2019 в 01:00
поделиться

Вероятно, потому что нет никакого оператора константы [] в станд.:: карта. оператор [] добавит элемент, который Вы ищете, если он не находит его. Поэтому используйте находку () метод, если Вы хотите искать без возможности добавления.

2
ответ дан 1 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

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