Neither GCC or VS uses a factor of 2 if my test program works:
Code:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
cout << "Initial capacity is: " << v.capacity() << endl;
for(int i = 0; i < 10; ++i)
{
v.insert(v.end(), v.capacity() - v.size() + 1, 0);
cout << "New capacity is: " << v.capacity() << endl;
}
}
Output from VS 2005:
Code:
Initial capacity is: 0
New capacity is: 1
New capacity is: 2
New capacity is: 3
New capacity is: 4
New capacity is: 6
New capacity is: 9
New capacity is: 13
New capacity is: 19
New capacity is: 28
New capacity is: 42
Output from GCC 4.3.3
Code:
Initial capacity is: 0
New capacity is: 1
New capacity is: 2
New capacity is: 4
New capacity is: 6
New capacity is: 10
New capacity is: 14
New capacity is: 22
New capacity is: 30
New capacity is: 46
New capacity is: 62