#include "iostream"
#include "forward_list"
#include "string"
using namespace std;
int main() {
forward_list<int> fl1 = { 1, 2, 3 };
for (auto iter = fl1.begin(); iter != fl1.end(); ++iter) {
cout << *iter << " ";
}
cout << endl;
//以上都是沒什么問題的,在控制臺會打印出1 2 3
//但是……
forward_list<string> fl2 = { "hello", "world", "Cpp" };
for (auto iter = fl2.begin(); iter != fl2.end(); ++iter) {
cout << *iter << " "; //這里VS報錯沒有對應(yīng)<<的元素, 請問這是為什么?
//而且當(dāng)我用printf(%s, *iter)打印時雖然編譯器不報錯但是輸出的結(jié)果卻是亂碼……
}
cout << endl;
return 0;
}
g++ 6.3.0 x86_64-posix-seh-rev2
No problem clang++ 4.0.0 Target: x86_64-pc-windows-msvc
No problem
In this case, use for(const auto& item : list)
More OK.