好吧所以我已經嘗試了一切。我有下面的類,我有一個驅動程序,它將讀取一個文件並使用getline獲取所有內容並將其作爲字符串複製。我的司機我也有vector<Seminar>
。STL和從字符串到矢量的數據
我很困惑的是如何把我的數據從字符串到矢量。現在我想,也許首先我需要做一個構造函數等這個工作?
我似乎無法執行它的權利。
class Seminar
{
public:
Seminar(int number = 0, string date = "yyyy-mm-dd" , string title = "")
{
Number = number;
Date = date;
Title = title;
}
int get_number() const {return Number; }
string get_date() const {return Date; }
string get_title() const {return Title; }
private:
int Number; // Seminar number
string Date; // Date of Seminar
string Title; // Title of Seminar
};
enter code here
vector<Seminar> all;
main()
ifstream InFile;
string Letter;
string File;
cout << "Type Letter from the Menu: "<<endl;
cin >> Letter;
if (Letter == "A" || "a")
{
cout << "What is the file you would like to read: "<<endl;
cin >> File;
InFile.open(File.c_str(),ios::in);
if(InFile)
{
string line = "";
while(getline(InFile,line))
{
cout << line << endl;
}
InFile.close();
}
}`enter code here`
我很困惑。我沒有看到任何'vector'的使用,並且它不是很明顯你想在哪裏使用它... –
你的字符串是什麼樣的?你是否已經從字符串中獲得了研討會對象? –
你需要編寫一個方法,它從你的文件中提取一個字符串(假定是),將數據解析成數字,日期和標題字段,然後將數據保存到一個'Seminar'對象中。你可以讓這個方法成爲構造函數,或者重載流操作符('<<'),或者只是一個常規方法。隨你便。你不需要做任何特殊的事情來把這個對象放到一個vector中(推測使用'push_back'或其他東西),因爲vector會使用對象的拷貝構造函數來拷貝它,而你的對象的默認拷貝構造函數就足夠了。 – indiv