C++的資料型別操作 - vector
阿新 • • 發佈:2021-12-13
使用C++做演算法題時,與vector相關的常用操作:
C++中的vector類似於Java中的ArrayList
標頭檔案 | #include |
建立:空間大小為5 | vector |
直接初始化 | vector |
建立:空間大小為5,賦值為1 | vector |
改值 | 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.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為迭代器 |