कई उत्तरों और टिप्पणियों का सही विचार है लेकिन वास्तव में बदसूरत वाक्यविन्यास है। इसे व्यक्त करने के दो अच्छे तरीके यहां दिए गए हैं।
arr2.end()[-2] // end() is past the last element, -1 for last element, -2 for second-last
arr2.rbegin()[1] // rbegin() is reverse order starting at 0 for last element, 1 for second-last
डेमो: http://ideone.com/2cZeUq
यह काम करता है क्योंकि RandomAccessIterator, जो vector
गया है, की आवश्यकता है प्रदान करने के लिए operator[]
ऐसी है कि it[n]
*(it + n)
के बराबर है, बस संकेत के लिए की तरह।
तो अपने प्रश्न में कोड हो जाता है बस
if (arr2.rbegin()[1]) // test penultimate element
स्रोत
2013-08-30 19:32:37
'arr2.rbegin() + 1' पुनरावर्तक, नहीं एक मूल्य है। '*' का उपयोग करने का प्रयास करें: 'अगर (* (arr2.rbegin() + 1) == सत्य) ' – JoshG79
' * (arr2.rbegin() + 1) 'या' arr2 [arr2.size() - 2] ' – Dave
@ जोशजी 7 9: उस स्थिति में, इटरेटर को डिफ्रेंस करने पर आपको प्राप्त होने वाले प्रकार को उपयुक्त ऑपरेटर == को परिभाषित करने की आवश्यकता होती है। – thokra