我實現一個模板函數按行讀入文件和類似文件的實體成矢量線:使用ifstream的模板函數有什麼問題?
#include <iostream>
#include <vector>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <fstream>
using namespace std;
template<typename T> vector<T> readfile(T ref1)
{
std::vector<T> vec;
std::istream_iterator<T> is_i;
std::ifstream file(ref1);
std::copy(is_i(file), is_i(), std::back_inserter(vec));
return vec;
}
我看在主要使用以下代碼讀取文件:
int main()
{
std::string t{"example.txt"};
std::vector<std::string> a = readfile(t);
return 0;
}
我得到的錯誤: 「敵不過呼叫「(的std :: istream_iterator,焦炭,...
讓我知道如果我需要提供更多的錯誤信息的機率,我只是搞亂了。有點簡單,但我不能說話d爲什麼 - 使用教程我已經得到了這個,我認爲這是一個很好的解決方案。
你能提供*全*錯誤? –
爲什麼你稱這個函數爲函數模板?這個函數只適用於'std :: string',所以實際上它本身不是函數模板。 – PiotrNycz