2.10学习

1、vector,deque由于是内存连续,所以查找效率高,但是如果插入删除的话涉及到内存的移动,故效率比较低O(N),list的插入较简单,查找较复杂,而map,set底层是红黑树,效率比较稳定O(logn)
2、对于vector,deque进行删除元素时,迭代器会失效(因为涉及到内存移动),所以erase会返回当前删除节点的上个节点的迭代器
而对于map,set,erase删除后其他节点的迭代器不会改变,所以让当前删除的迭代器++就行
3、map<int,vector>的mapped_type是vector,value_type是pair<int,vector>
4、set只能访问元素不能通过copy改变
5、cording.insert(make_pair(word, number)).first返回的一个迭代器,如果插入成功,就指向当前的数据,如果插入失败,就创建一个新的数据,->second就是指向了对应数据的value值
整体insert(make_pair(word, number))返回的是一个pair<map<string,int>::iterator,bool>

点击查看代码
ifstream fst("stringTest.txt");
	if (!fst)
	{
		cout << "test打开失败" << endl;
		return 1;
	}
	string word;
	map<string, size_t>cording;
    while (fst >> word)
	{
		++cording.insert(make_pair(word, number)).first->second;
	}
posted @ 2026-02-10 23:31  dd_l  阅读(6)  评论(0)    收藏  举报