STL和从字符串到Vector的数据

时间:2011-12-08 18:10:46

标签: c++ stl vector

好的所以我已经尝试了一切。我有下面的类,我有一个驱动程序,它将读取文件,并使用getline获取所有内容并将其复制为字符串。

在我的驱动程序中,我也有vector<Seminar>

我感到困惑的是如何将我的数据从字符串放到矢量中。现在我想,也许首先我需要为此构建一个构造函数等?

我似乎无法正确实施。

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`

2 个答案:

答案 0 :(得分:1)

以下内容应指向正确的方向:

#include<vector>
#include<iostream> 
#include<string>

int main()
{
  std::vector<std::string> myStringVector;
  myStringVector.push_back("First");
  myStringVector.push_back("Second");

  std::cout<<myStringVector[0]<<"\n"<<myStringVector[1]<<"\n";

  return 0;
 }

我认为在你的情况下你可能需要做一些事情:

Seminar seminar1(<data here>);
std::vector<Seminar> seminarVector;
seminarVector.push_back(seminar1);

答案 1 :(得分:0)

如果您有一个向量&lt; string&gt;,请使用push_back()为其添加值。

std::vector<std::string> foo;

foo.push_back( "hi there!" );