1. 程式人生 > 其它 >C++的資料型別操作 - vector

C++的資料型別操作 - vector

使用C++做演算法題時,與vector相關的常用操作:

C++中的vector類似於Java中的ArrayList

標頭檔案 #include
建立:空間大小為5 vector v(5); // 5個元素,但可以擴充,預設初始化。
直接初始化 vector v = {1,2,3}; // 使用{}直接初始化。
建立:空間大小為5,賦值為1 vector v(5,1);
改值 v[i] = x;
插入 v.insert(v.begin(), x);
在最後位置增加(插入) v.push_back(x); // 沒有push_front();pop_front();
在最後位置增加(插入) v.emplace_back(x); // 不建立臨時變數
刪除最後一個 v.pop_back();
檢視空間大小 v.size();
清空內容 v.clear();
第一個數 迭代器 = v.begin(); //迭代器是指標需要取內容
第i個 v[i]; v.at(i); // v.at(i)與v[i]區別在於i越界時候會丟擲異常,而v[i]會報錯。
最後一個數下一個 v.at(i);
最後一個數下一個 v.end();
排序 #include , sort(v.begin(0, v.end());
逆序排序 sort(v.rbegin(0, v.rend());
複製 opy(1st.cbegin(),1st.end(),back_inserter(2st);
賦值 copy(1st.cbegin(),1st.end(),inserter(2st,2st.begin());
逆向複製 copy(1st.cbegin(),1st.end(),front_inserter(2st);
範圍內的最大元素 迭代器 = max_element(num.begin(), num.end());
翻轉 reverse(v.begin(), v.end());
改變大小 resize();
[l,r]範圍內找最大值,max是迭代器 auto max = max_element(n.begin() + l, n.begin() + r + 1);// max為迭代器
找最大值的下標 int i = max - v.begin();// max為迭代器