读书人

为什么小弟我的multi地图的迭代器不能

发布时间: 2013-03-19 17:22:05 作者: rapoo

为什么我的multimap的迭代器不能解引用取得first成员呢?
环境:
XP + VS2008 + VAX


#include <iostream>
#include <string>
#include <map>
using namespace std;
typedef multimap<string, string>::iterator mmap_it;
int main()
{
multimap<string, string>&
build_authors(multimap<string, string> &authors);
multimap<string, string> &delete_author(multimap<string, string> &authors,
const string &author_name);
multimap<string, string> mmap_authors;
build_authors(mmap_authors);
cout << "请输入你想查找的作者并删除:";
string author_name;
cin >> author_name;
delete_author(mmap_authors, author_name);
return 0;
}

//加入作者及其作品
multimap<string, string>&
build_authors(multimap<string, string> &authors)
{
string line_book;
while(getline(cin, line_book))
{
authors.insert(line_book);
}
cin.clear();
return authors;
}

//删除指定作者及其作品
multimap<string, string> &delete_author(multimap<string, string> &authors,
const string &author_name)
{
multimap<string, string>::size_type cnt =
authors.count(author_name), ix(0);
if(!cnt)
{
cout << "没有该作者的信息!" << endl;
}
else
{
mmap_it it = authors.find(author_name);
authors.erase(it, it + cnt);
}
return authors;
}

//显示现有的作者及其作品
void print_authors(const multimap<string, string> &authors)
{
mmap_it it = authors.begin();
while(it != authors.end())
{
it->fi //就是这里怎么都出不来,我想it->first,不是说multimap迭代器解引用就是一个
//pair对象吗?那为什么我不能出来它的first成员呢?

[解决办法]
你这报的错误是什么, 我怎么感觉不只是这里有问题。
[解决办法]
楼主是想说VAX的自动补全功能吧
可能版本不够新吧,或者有时候识别不出来,iterator的 -> 是一个函数,重载的,所以it->识别的有时候会有点不完美

读书人网 >C++

热点推荐