map的迭代器应该怎么正确使用呢?


	map<vector<string>,int>::iterator it_ci = complexmap_idf.begin();
	for (; it_ci != complexmap_idf.end(); ++it_ci)
	{

		vector<string> temp_vec_1 = it_ci->first;
		vector<string>::iterator it_ci_sub = temp_vec_1.begin();
		
		for (; it_ci_sub != temp_vec_1.end(); ++it_ci_sub)
		{
			cout << *it_ci_sub << " ";
		}
		cout << endl;
	}

这样写是可以的

但是


	map<vector<string>,int>::iterator it_ci = complexmap_idf.begin();
	for (; it_ci != complexmap_idf.end(); ++it_ci)//用来结构vector嵌套的复合物
	{
		vector<string>::iterator it_ci_sub = (it_ci->first).begin();

		for (; it_ci_sub != temp_vec_1.end(); ++it_ci_sub)
		{
			cout << *it_ci_sub << " ";
		}
		cout << endl;
	}

这样写是报错的

为什么尼

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^