std::make_reverse_iterator() 是 C++ 中的預定義函數,用於為給定迭代器創建 reverse_iterator。此函數有助於以相反的順序迭代數據。
std::make_reverse_iterator() 函數存在於<iterator>頭文件。
用法
std::make_reverse_iterator (iterator);
參數
- iterator:要轉換為反向迭代器的迭代器。
返回值
- 它返回給定類型的反向迭代器。
make_reverse_iterator() 的示例
示例1:使用make_reverse_iterator逆序遍曆向量元素。
C++
// C++ Program to illustrate the use of
// make_reverse_iterator for vector iterator
#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main()
{
// declaring vector
vector<int> v = { 10, 20, 30, 40, 50 };
// creating a iterator using v.end()
auto rIter = make_reverse_iterator(v.end());
// printing in reverse order
for (auto iter = rIter; iter != v.rend(); ++iter) {
std::cout << *iter << " ";
}
return 0;
}
輸出
50 40 30 20 10
在此代碼中,我們有一個大小為 5 的向量,在下一行中,我們通過傳遞向量的 end() 迭代器,使用 make_reverse_iterator() 函數創建了反向迭代器 (rIter)。 rIter 指向向量的最後一個元素,因此我們隻需要迭代 rIter 直到 rIter 指向向量的第一個元素。
示例 2:使用 make_reverse_iterator() 以相反的順序以大寫字母打印整個字符串
C++
// C++ program to print reverse of string in upper case
// using make_reverse_iterator
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
using namespace std;
int main()
{
// defining string
string name = "vikash mishra";
// creating reverse iterator
auto rIter = make_reverse_iterator(name.end());
// printing string character by character
for (auto iter = rIter; iter != name.rend(); ++iter) {
int k = *iter;
if (k == 32) {
cout << char(k);
}
else {
cout << char(k - 32) << " ";
}
}
cout << endl;
return 0;
}
輸出
A R H S I M H S A K I V
在此示例中,我們將整個字符串打印為大寫。方法與前麵的示例類似,但主要區別是將小字符轉換為大寫字符,這是通過從小字符的 ASCII 值中減去 32 來完成的(例如 - ‘a’ ASCII 值為 97,因此 97-32 = 65,這是 A) 的 ASCII 值。
相關用法
- C++ make_heap()用法及代碼示例
- C++ malloc()用法及代碼示例
- C++ map at()用法及代碼示例
- C++ map begin()用法及代碼示例
- C++ map cbegin()用法及代碼示例
- C++ map cend()用法及代碼示例
- C++ map clear()用法及代碼示例
- C++ map crbegin()用法及代碼示例
- C++ map crend()用法及代碼示例
- C++ map empty()用法及代碼示例
- C++ map end()用法及代碼示例
- C++ map size()用法及代碼示例
- C++ map swap()用法及代碼示例
- C++ map::max_size()用法及代碼示例
- C++ map count()用法及代碼示例
- C++ map emplace()用法及代碼示例
- C++ map emplace_hint()用法及代碼示例
- C++ map equal_range()用法及代碼示例
- C++ map erase()用法及代碼示例
- C++ map find()用法及代碼示例
- C++ map insert()用法及代碼示例
- C++ map key_comp()用法及代碼示例
- C++ map lower_bound()用法及代碼示例
- C++ map max_size()用法及代碼示例
- C++ map rbegin()用法及代碼示例
注:本文由純淨天空篩選整理自vikash_mishra大神的英文原創作品 make_reverse_iterator Function in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。