gcc 中std::list 的size()成員函式
阿新 • • 發佈:2018-12-27
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
int main()
{
std::ifstream input_file("D:\\emails100w.txt");
std::istream_iterator<std::string> input_begin(input_file);
std::istream_iterator<std::string> input_end;
std::vector<std::string> log_vector(input_begin,input_end);
//寫入到另外一個檔案
std::ofstream output_file("D:\\emails100w_copy.txt");
std::ostream_iterator<std::string> output_begin(output_file,"\n");
std::copy(log_vector.begin(),log_vector.end(),output_begin);
}
上面的程式碼是可以編譯通過的,其中的D:\\emails100w.txt是一個包含一百萬條記錄的文字。
剛才我給出的程式碼通不過編譯,確實是我的問題,主要是
std::istream_iterator<std::string> input_end;
這一行,最後應該沒有括號。如果加上括號,編譯器就不會認為這是一個iterator,就會呼叫vector的錯誤建構函式,就會出現博主所敘的錯誤。 回覆 更多評論
#include <fstream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
int main()
{
std::ifstream input_file("D:\\emails100w.txt");
std::istream_iterator<std::string> input_begin(input_file);
std::istream_iterator<std::string> input_end;
std::vector<std::string> log_vector(input_begin,input_end);
//寫入到另外一個檔案
std::ofstream output_file("D:\\emails100w_copy.txt");
std::ostream_iterator<std::string> output_begin(output_file,"\n");
std::copy(log_vector.begin(),log_vector.end(),output_begin);
}
上面的程式碼是可以編譯通過的,其中的D:\\emails100w.txt是一個包含一百萬條記錄的文字。
剛才我給出的程式碼通不過編譯,確實是我的問題,主要是
std::istream_iterator<std::string> input_end;
這一行,最後應該沒有括號。如果加上括號,編譯器就不會認為這是一個iterator,就會呼叫vector的錯誤建構函式,就會出現博主所敘的錯誤。