C++ STL中的 deque crend
deque::crend() 是C++ STL中的内置函数,它返回一个常量反向迭代器,该迭代器指向deque的第一个元素之前的位置。
语法
deque_name.crend()
参数: 此函数不接受任何参数。
返回类型: 此函数返回一个deque的常量反向迭代器。
示例-1:
// C++ program to illustrate the
// deque::crend() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
deque<int> dq = { 10, 20, 30, 40, 50 };
cout << "The deque in reverse order: \n";
//按相反的顺序打印元素
for (auto it = dq.crend() - 1; it >= dq.crbegin(); --it)
cout << *it << endl;
return 0;
}
输出:
The deque in reverse order:
10
20
30
40
50
示例-2: 由于迭代器是常量,试图更改它会导致错误。
// C++ program to illustrate the
// deque::crend() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
deque<char> dq = { 'a', 'b', 'c', 'd', 'e', 'f' };
cout << "The deque in reverse order: \n";
//按相反的顺序打印元素
for (auto it = dq.crend() - 1; it >= dq.crbegin(); --it)
*it = 'g' //编译错误,不可更改常量迭代器
return 0;
}
输出:
Compilation Error in CPP code :- prog.cpp: In function ‘int main()’: prog.cpp:15:13: error: assignment of read-only location ‘it.std::reverse_iterator<_Iterator>::operator* >()’ *it = ‘g’ ^ prog.cpp:17:5: error: expected ‘;’ before ‘return’ return 0; ^
时间复杂度: O(N)。(N是deque的大小)。
辅助空间: O(1)。