【C/C++】vector 動態二維數組


  1. 聲明
vector<vector<int> vec;

//賦值思路可以從這個很基礎的操作里看出來
vector<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);

vector<int> b;
b.push_back(4);
b.push_back(5);
b.push_back(6);

vec.push_back(a);
vec.push_back(b);
  1. 遍歷
void reverse_with_iterator(vector<vector<int>> vec)
{
    if (vec.empty())
    {
        cout << "The vector is empty!" << endl;
        return;
    }

//一個輸出函數,一般從這里開始就行了
    vector<int>::iterator it;
    vector<vector<int>>::iterator iter;
    vector<int> vec_tmp;

    cout << "Use iterator : " << endl;
    for(iter = vec.begin(); iter != vec.end(); iter++)
    {
        vec_tmp = *iter;
        for(it = vec_tmp.begin(); it != vec_tmp.end(); it++)
            cout << *it << " ";
        cout << endl;
    }
}
  1. 自己寫了一個初始化二維動態數組
    這個填寫的思路就是,從里面往外面填,因為外面只能填vector,只有里面的可以用insert函數來填數字
   string str1, str2;
   cin >> str1 >> str2;
   int len1 = str1.length(); //i
   int len2 = str2.length(); //j
   vector<vector<int>> dp;
   //根據長度開創一個動態二維數組

   //vector的填寫
   vector<int> tmp;
   tmp.insert(tmp.begin(), len2, 0);
   dp.insert(dp.begin(), len1, tmp);

   vector<int>::iterator it;
   vector<vector<int>>::iterator iter;
   vector<int> vec_tmp;

   cout << "Use iterator : " << endl;
   for(iter = dp.begin(); iter != dp.end(); iter++)
   {
      vec_tmp = *iter;
      for(it = vec_tmp.begin(); it != vec_tmp.end(); it++)
         cout << *it << " ";
      cout << endl;
   }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM