array::crbegin() और array::crend()
यहां हम C++ STL में सरणी के crbegin() और crend() फंक्शन्स देखेंगे।
array::crbegin() फंक्शन का उपयोग रिवर्स इटरेटर प्राप्त करने के लिए किया जाता है। यह कंटेनर के अंतिम तत्व को इंगित करने वाला कॉन्स्टेंट रिवर्स इटरेटर लौटाता है। यह फंक्शन कोई पैरामीटर नहीं लेता।
array::crend() फंक्शन crbegin() का विपरीत है। यह वह इटरेटर लौटाता है जो रिवर्स इटरेटर के अंतिम तत्व (यानी मूल सरणी के पहले तत्व से पहले) को इंगित करता है।
उदाहरण
#include <iostream>
#include <array>
using namespace std;
int main() {
array<int, 10> arr = {0, 11, 22, 33, 44, 55, 66, 77, 88, 99};
cout << "The list in reverse order: ";
for(auto it = arr.crbegin(); it != arr.crend(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}
आउटपुट
The list in reverse order: 99 88 77 66 55 44 33 22 11 0
इटरेटर प्रकार तुलना
| इटरेटर | प्रकार | दिशा | कॉन्स्ट | प्रारंभ | अंत |
|---|---|---|---|---|---|
| begin() | इटरेटर | आगे | नहीं | पहला तत्व | अंत के बाद |
| end() | इटरेटर | आगे | नहीं | अंत के बाद | - |
| rbegin() | रिवर्स_इटरेटर | पीछे | नहीं | अंतिम तत्व | शुरुआत से पहले |
| rend() | रिवर्स_इटरेटर | पीछे | नहीं | शुरुआत से पहले | - |
| cbegin() | कॉन्स्ट_इटरेटर | आगे | हां | पहला तत्व | अंत के बाद |
| cend() | कॉन्स्ट_इटरेटर | आगे | हां | अंत के बाद | - |
| crbegin() | कॉन्स्ट_रिवर्स_इटरेटर | पीछे | हां | अंतिम तत्व | शुरुआत से पहले |
| crend() | कॉन्स्ट_रिवर्स_इटरेटर | पीछे | हां | शुरुआत से पहले | - |
व्यावहारिक उपयोग
// रिवर्स में रीड-ओनली एक्सेस
for (auto it = arr.crbegin(); it != arr.crend(); ++it) {
cout << *it << " "; // *it केवल पढ़ने के लिए है
}
// STL एल्गोरिदम के साथ
#include <algorithm>
bool allPositive = all_of(arr.crbegin(), arr.crend(), [](int x){ return x > 0; });
// रिवर्स कॉपी
vector<int> vec(arr.crbegin(), arr.crend()); // रिवर्स क्रम में कॉपी
महत्वपूर्ण बिंदु
crbegin()औरcrend()C++11 में पेश किए गए- कॉन्स्ट रिवर्स इटरेटर्स के माध्यम से तत्वों को संशोधित नहीं किया जा सकता
- रेंज-आधारित फॉर लूप के लिए:
for (auto it = arr.rbegin(); it != arr.rend(); ++it) std::reverse_iteratorएडाप्टर किसी भी इटरेटर को रिवर्स इटरेटर में बदल सकता है