Что такое capacity()
для std::vector
, который создается с помощью стандартного constuctor? Я знаю, что size()
равно нулю. Можем ли мы заявить, что построенный по умолчанию вектор не вызывает выделение памяти кучи?
Таким образом, можно создать массив с произвольным резервом, используя одно выделение, например std::vector<int> iv; iv.reserve(2345);
. Скажем, что по какой-то причине я не хочу запускать size()
на 2345.
Например, в Linux (g++ 4.4.5, ядро 2.6.32 amd64)
#include <iostream>
#include <vector>
int main()
{
using namespace std;
cout << vector<int>().capacity() << "," << vector<int>(10).capacity() << endl;
return 0;
}
напечатан 0,10
. Это правило, или это зависит от поставщика STL?