我創建迭代器:奇怪的行爲或std ::地圖::爲const_iterator
typename Report::container_type_for_processed_files::const_iterator beg = rep.processed_files().begin();
typename Report::container_type_for_processed_files::const_iterator end = rep.processed_files().end();
我的報告類如下:
class Report
{
public:
typedef std::map<boost::filesystem3::path,
std::pair<unsigned long long/*code*/,
unsigned long long/*comment*/> > container_type_for_processed_files;
container_type_for_processed_files processed_files()const;
private:
container_type_for_processed_files processed_files_;
};
在CPP處理的文件看起來像:
typename Report::container_type_for_processed_files Report::processed_files()const
{
return processed_files_;
}
但初始化迭代器如第一行所示:
typename Report::container_type_for_processed_files::const_iterator beg = rep.processed_files().begin();
typename Report::container_type_for_processed_files::const_iterator end = rep.processed_files().end();
while (beg != end)
{
qDebug() << beg->first.c_str();//here I'm getting runtime error
fout << "File name: " << (beg->first).c_str();
++beg;
}
我收到錯誤:傳遞給C運行時函數的參數無效。
試圖初始化迭代器時,我也越來越輸出窗格中的消息:
(內部錯誤:PC 0x201在讀psymtab,但不是在SYMTAB。)
這是怎麼回事?
什麼是'qDebug'? – 2012-01-01 17:25:33
另外,請考慮創建一個最小的測試用例(請參閱http://sscce.org)。 – 2012-01-01 17:27:47
@OliCharlesworth Qt提供的輸出流,用於調試目的。 – 2012-01-01 17:28:02