reserve()
Ostatnio zmodyfikowano 2014-07-19 18:10
unkn9wn Temat założony przez niniejszego użytkownika |
reserve() » 2014-07-19 17:59:05 Pytanie odnośnie przykładu: vector < int > container;
cout << "container.size(): " << container.size() << endl; cout << "container.capacity(): " << container.capacity() << endl; for( int i = 0; i < 501; i++ ) container.emplace_back( i );
for( auto it = container.begin(); it != container.end(); it++ ) cout <<( * it ) << " ";
cout << endl;
cout << "container.size(): " << container.size() << endl; cout << "container.capacity(): " << container.capacity() << endl; cout << "rozmiar kontenera wraz z elementami w bajtach: " << container.capacity() * sizeof( int ) + sizeof( container ) << endl; nie rezerwując, tworząc 501 elementów, capacity() wynosi 711 elementów rezerwując miejsce na 500 elementów i przekraczając zarezerwowaną pamięć, czyli tworząc element 501, zarezerwowane zostaje miejsce na 750 elementów, rezerwując 20 elementów i tworząc 501 elementów capacity() wynosi 505 Czyli reserve() zmienia także liczbę, o którą będzie dodatkowo realokowana pamięć dla kontenera, w przypadku osadzania więcej elementów? |
|
pekfos |
» 2014-07-19 18:10:02 Czyli reserve() zmienia także liczbę, o którą będzie dodatkowo realokowana pamięć dla kontenera, w przypadku osadzania więcej elementów? |
Może tak, a może nie. To nie ma znaczenia - zależne od implementacji kontenera. |
|
« 1 » |