一、vector反轉函數
#include <algorithm> std::reverse(vector.begin(), vector.end());
在C++ STL中,vector類已經提供了反轉函數reverse(),使用該函數可以方便地將vector中的元素進行反轉。vector反轉函數的參數是迭代器類型。
例如:
vector<int> v {1, 2, 3, 4, 5}; std::reverse(v.begin(), v.end()); // 現在v的元素為{5, 4, 3, 2, 1}
二、vector元素反轉
std::reverse(vector.begin(), vector.begin() + k); std::reverse(vector.begin() + k, vector.end()); std::reverse(vector.begin(), vector.end());
通過三次vector反轉可以實現將前k個元素移到後面。
例如:
vector<int> v {1, 2, 3, 4, 5}; int k = 2; std::reverse(v.begin(), v.begin() + k); std::reverse(v.begin() + k, v.end()); std::reverse(v.begin(), v.end()); // 現在v的元素為{3, 4, 5, 1, 2}
三、vector反轉拼接
vector<int> v1 {1, 2, 3}; vector<int> v2 {4, 5, 6}; std::reverse(v1.begin(), v1.end()); std::reverse(v2.begin(), v2.end()); v1.insert(v1.end(), v2.begin(), v2.end()); // 現在v1的元素為{3, 2, 1, 6, 5, 4}
如果想將兩個vector按照相反的順序拼接,我們可以將每個vector先進行反轉,然後再使用vector的insert函數將第二個vector的元素插入到第一個vector的末尾。
四、Verilog反轉一個8位vector
wire [7:0] a; wire [7:0] b; always @ (a) begin for (int i = 0; i < 8; i++) begin b[i] = a[7 - i]; end end
在Verilog中,可以使用for循環遍歷vector中的所有元素,並使用下標操作符[]獲取對應的元素,將其倒序存放到另一個vector中。
五、vector反轉數組
template<typename T, size_t N> void reverse_array(T (&arr)[N]) { std::reverse(arr, arr + N); }
如果想將一個數組反轉,可以使用STL的reverse函數。但是,reverse函數需要傳入迭代器類型,而數組沒有迭代器。因此,我們可以將數組作為函數的參數,並使用模板來確定數組的大小,並將數組名強制轉換為迭代器類型即可。
六、vector容器反轉
vector<int> v {1, 2, 3, 4, 5}; std::reverse(v.begin(), v.end());
和vector類似,STL中的其他容器,如array、list等也都提供了reverse()函數,使用方法和vector類似。
七、QT vector反轉
QVector<int> v {1, 2, 3, 4, 5}; std::reverse(v.begin(), v.end());
在QT中,vector被稱為QVector。和STL的vector類似,QVector也提供了reverse()函數,使用方法也類似。
八、C++ vector反轉
vector<int> v {1, 2, 3, 4, 5}; std::reverse(v.begin(), v.end());
在C++中,vector是標準庫中最常用的容器之一,使用reverse()函數可以方便地對vector進行反轉。
九、int轉vector
int num = 12345; vector<int> v; while(num) { v.push_back(num % 10); num /= 10; } std::reverse(v.begin(), v.end()); // 現在v的元素為{1, 2, 3, 4, 5}
如果要將一個整數按照相反的順序保存在vector中,可以先將其轉換為字元串,然後再將字元串逐個轉換為數字,存放到vector中。最後使用reverse()函數對vector進行反轉即可。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/289190.html