Одно и то же решение (и один и тот же код) совершенно по-разному жрёт память под разными компиляторами. Возможно, это связано с тем, что в решении задачи 1009F - Dominant Indices я использую vector/set/map, но всё-равно всё как-то непонятно. Кто-нибудь знает, в чём причина?
GNU C++17 9.2.0 (105469764)
GNU C++17 7.3.0 (105470465)
GNU C++17 (64) 64-х битный, поэтому в нем каждый указатель занимает 8 байт, а не 4. Если ты используешь set/map, то логично, что в памяти хранится много указателей, поэтому потребление памяти и возрастет в два раза.
При сборке 64-битным компилятором и 32-битным размер указателей при использовании
std::map
иstd::set
получается различным (на 64-битном в два раза больше). Размер мапы зависит не только от размеров типов ключа и значения, но и от размера указателей.См. две посылки: - C++17 (64-bit): 105474002 - C++11 (32-bit): 105473976