std::vector(10)
nie tylko inicjuje, ale także ustawia wartość domyślną. (Nie mogę znaleźć zbyt wiele dokumentacji na ten fakt btw. Link do cppreference czy coś takiego?)
Nie jest to mądry ruch w programowaniu wielowątkowym na maszynie wielogniazdowej, ponieważ wiąże całą pamięć z pierwszym gniazdem. W przypadku tablic w stylu C, osobno malloc i ustawiam wartości domyślne dla wątków, dzięki czemu pamięć jest ładnie powiązana z gniazdami wątków. To znacznie zmniejsza opóźnienia wynikające z koherencji NUMA.
Jaki jest najprostszy sposób na posiadanie std::vector
, który tylko alokuje? Czy muszę napisać kompletny alokator? Wydaje się zniechęcające.