2.18学习
1、deque的底层是map中控器+分段缓存区,map中控器类似于一个指针数组,其中每个指针元素都指向一块缓存区
能使用vector就不要使用deque,因为deque的迭代器比vector复杂
2、vector的分配空间只能增加不能自动减少,如果动态减少可以使用deque
如何减少vector的内存:当vector调用erase时元素数目会减少,但是capcity不会减少,所以要用swap进行减少内存(在vector调用析构函数)
点击查看代码
vector<int>vec;
for (int i = 0; i < 1000; i++)
{
vec.push_back(i);
}
cout << vec.capacity() << endl;
vec.erase(vec.begin() + 100, vec.end());
cout << vec.capacity() << endl;
vector<int>(vec).swap(vec);
cout << vec.capacity() << endl;
浙公网安备 33010602011771号