Карта позволяющая дублировать? [Дубликат]

Просто используйте метод node.itertext(), как в:

 ''.join(node.itertext())
0
задан Rakesh Mhasawade 15 January 2019 в 18:27
поделиться

1 ответ

Если вы сравните words[0] и words[3], вы увидите, что они не совпадают. Это потому, что они являются указателями, поэтому операторы ==, < и т. Д. Будут искать адреса ваших строк C, а не их содержимое.

Так как их содержание одинаково, это возможно возможно & mdash; но не гарантировано & mdash; что их адреса тоже будут одинаковыми (это факт жизни со строковыми литералами). В вашем случае они не одинаковы, поэтому ключи логически различны, и оба элемента принимаются.

Указатели не являются контейнерами.

Вы можете заставить карту использовать strcmp вместо , предоставив пользовательский компаратор, или вы можете просто использовать std::string (или std::string_view) для своих клавиш. :)

0
ответ дан Lightness Races in Orbit 15 January 2019 в 18:27
поделиться
Другие вопросы по тегам:

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