Po wielu badaniach z valgrind doszedłem do wniosku, że std :: vector tworzy kopię obiektu, który chcesz push_back.
Czy to prawda? Wektor nie może zachować odniesienia lub wskaźnika do obiektu bez kopii?!
Dzięki
push_back: zajmuje const&. Albo odrzuca wartość (bezużyteczna), albo istnieje metoda pobierania. Patrzymy więc na podpis backi zwraca on zwykły &, więc albo oryginalna wartość została skopiowana, albo constzostała po cichu odrzucona (bardzo źle: potencjalnie niezdefiniowane zachowanie). Zakładając więc, że projektanci vectorbyli racjonalni ( vector<bool>nie sprzeciwiali się), dochodzimy do wniosku, że robi kopie.
*lub,&aby utworzyć wskaźnik lub odniesienie.