C++菜鳥の道(三)Vectorの使用とcsvファイルの読み書き


  • Vectorの基本的な使い方
  • Vectorの関連アルゴリズムの使用
  • reverse要素を
  • に反転
  • sortソート
  • 昇順配列
  • 降順配列

  • vector>2層vector
  • を使用
  • ファイル処理とVectorアプリケーション
  • まとめ
  • Vectorの基本的な使い方
    c++ではvectorは非常に有用なコンテナであり,一般的な配列に比べて挿入や削除が容易であり,クエリー関連の情報やクリアが容易である.
    (1)   #include.
    
    (2)  vector  ,vector vec;
    
    (3)      :vec.push_back(a);
    
    (4)        ,cout<
            vector<int>::iterator it;
            for(it=vec.begin();it!=vec.end();it++)
                cout<//         
    (6)    :    vec.insert(vec.begin()+i,a);  i+1       a;
    
    (7)    :    vec.erase(vec.begin()+2); //   3    
    
        vec.erase(vec.begin()+i,vec.end()+j);    [i,j-1];   0  
    
    (8)    :vec.size();   //          
    
    (9)  :vec.clear();      //     
    

    Vectorの関連アルゴリズムの使用
    reverse要素を反転
    #include
    
    reverse(vec.begin(),vec.end());     

    sortソート
    昇順配列
    #include
    
    sort(vec.begin(),vec.end()); //        

    降順配列
    bool Comp(const int &a,const int &b)
    {
        return a>b;
    }
    
    sort(vec.begin(),vec.end(),Comp);

    vector>2層vector使用
    2 D Vectorは1つの2 D配列に相当し、まず1つのvectorを組み立て、周辺のVectorに加えるだけでよい.
    std::vector<std::vector<std::string>>& vAllRow
    
    while(     r )
    {
    std::vector<std::string> vRow;
    vRow.clear();
    
    vRow.push_back(r[0]);
    vRow.push_back(r[1]);
    vRow.push_back(r[2]);
    vRow.push_back(r[3]);
    vRow.push_back(r[4]);
    vRow.push_back(r[5]);
    
    vAllRow.push_back(vRow);
    }

    データはvAllRowに格納されており、次に読み込んだデータを表示します
    vector<vector<std::string>>::iterator item2v = vAllRow.begin();
    while(item2v !=vAllRow.end())
    {
    vector<std::string>::iterator item = (*item2v).begin();
    while(item != (*item2v).end())
    {
    cout<"\t";
    item++;
    }
    std::cout<<std::endl;
    item2v++;
    }

    ファイル処理とVectorアプリケーション
    主にファイルに情報を記録して読み取る試みで、その間にvectorが使われています
    #include
    #include
    #include  //    
    #include
    #include
    
    using namespace std;
    
    int main()
    {
        //   
        ofstream outFile;
        outFile.open("data.csv", ios::out);
        outFile << "name" << ',' << "age" << ',' << "hobby" << endl;
        outFile << "Mike" << ',' << 18 << ',' << "paiting" << endl;
        outFile << "Tom" << ',' << 25 << ',' << "football" << endl;
        outFile << "Jack" << ',' << 21 << ',' << "music" << endl;
        outFile.close();
    
    
        //   
        ifstream inFile("data.csv", ios::in);
        string lineStr;
        vector< vector<string> > strArray; //vector    string
        while(getline(inFile, lineStr)) //   inFile      ,    lineStr  
        {
            cout<< lineStr<stringstream ss(lineStr); //        ss   ,         
            string str;
            vector<string> lineArray;  
            //       
            while(getline(ss, str, ',')) // ss  ,    “,”      ss       str
            {
                lineArray.push_back(str);   //         line Array
                cout<< str<return 0;
    }

    まとめ
                     :
    
    (1) vector vec      vector.begin()    , 
        vector.end()    , vector.push_back(str)      , vector.clear()     
    (2) vector < vector < string> > Vec; //    Vector,
    (3) vector<:string>::iterator item = (*item2v).begin(); // vector    iterator   ,
                 。 *item, *item++  。
    
    (4)       :     //   
    
        ofstream outFile;
        outFile.open("data.csv", ios::out);  //     
        outFile << "name" << ',' << "age" << ',' << "hobby" << endl;
        outFile.close();
    (5)       :
        ifstream inFile("data.csv", ios::in);
        lineArray.push_back(str);
    (6)         
         #include
         cout<