Как мне просто заменить текст в файле (как и весь текст)

Нет, вам нужно перебрать std :: map и проверить все значения вручную. В зависимости от того, что вы хотите сделать, вы можете перенести std :: map в простой класс, который также кэширует все значения, которые вставляются в карту, в то, что легко найти и не позволяет дублировать, например, std ::задавать. Не наследуйте от std :: map (у него нет виртуального деструктора!), Но оберните его, чтобы вы могли сделать что-то вроде этого:

WrappedMap my_map< std::string, double >;
my_map[ "key" ] = 99.0;
std::set< double > values = my_map.values(); // should give back a set with only 99.0 in it

Альтернативой катите было бы использовать двунаправленную карту Boost, которую можно легко найти в сообщениях ниже или Google.

Это действительно зависит от того, что вы хотите делать, как часто вы хотите это сделать и насколько сложно это сделать состоит в том, чтобы свернуть собственный небольшой класс-оболочку против установки и использования Boost. Мне нравится Boost, так что это хороший способ - но есть что-то приятное и полное в создании собственного класса обертки. У вас есть преимущество в том, что вы понимаете непосредственно сложность операций, и вам может не понадобиться полное обратное отображение значений => ключей, которые предоставляются двунаправленной картой Boost.

-3
задан zenvetie572 13 March 2019 в 22:16
поделиться