【发布时间】:2013-01-27 23:05:19
【问题描述】:
我是 C++ 新手。我无法将数据输出到文件。我正在使用迭代器打印出地图。 print 方法接受 i,一个键值,并打印出它对应的向量。现在,当我使用 cout
public: void print(int i, vector<string> in, ostream& outfile) // print method for printing a vector and it's key
{
sort(in.begin(), in.end()); // sort the vector alphabetically first
vector<string>::iterator it;
it= unique(in.begin(), in.end()); // makes sure there are no duplicate strings
in.resize( distance(in.begin(),it) );
for( it = in.begin(); it != in.end(); it++ ) // iterate through it
cout << i << ": "<< *it<<endl; // and print out the key value and each string in the vector
// outfile<< i << ":" << *it<< endl; // prints to file
}
【问题讨论】:
-
与错误无关,但您可以通过从
std::vector:std::set<string> s(in.begin(), in.end());创建一个std::set来节省一些排序和调整大小。 -
在这个问题和this question 之间,你的作业中是否有任何部分来获取一个值向量并写出一个没有的唯一值列表你对吗?值得称赞的是,至少你写了一些代码,这比大多数人的尝试都要多。
-
@WhozCraig - 值得称赞的是,他尝试并遇到了一个他不知道的问题。通过这些天的一些教学,我并不惊讶有些人不知道正确的范围界定。
-
@slugonamission 我同意。老实说,我对他的导师印象深刻,因为他允许他使用标准库的工具。他已经为他准备好了,这也很高兴看到改变。
-
@user2016393:
cout << i ...行是为了替换outfile << i ...行只是为了调试目的,还是你真的想同时做这两件事?我的意思是同时写入标准输出和文件?