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;
3、对于STL如何在多线程中使用 STL有一个共享内存,使所有的数据都在共享内存中分配,当线程A在共享内存中放置了一个容器,那数据B要找到这个容器有两个办法: 一个是A把数据放到一个共享内存的确定地址上,然后B访问这个确定地址,另一个是A实现一个map,当A创建容器时,取个名字,将其和对应创建的容器绑定起来,然后B直接访问map 4、substr()函数,substr(1)代表从第一个字符开始截取字符串
posted @ 2026-02-18 19:14  dd_l  阅读(2)  评论(0)    收藏  举报