मैं विंडोज और मैक के बीच कुछ क्रॉस-प्लेटफ़ॉर्म कोड लिख रहा हूं।एसटीएल सूची के माध्यम से आप पीछे की तरफ कैसे जाते हैं?
यदि सूची :: अंत() "एक पुनरावर्तक लौटाता है जो किसी सूची में अंतिम तत्व को सफल करने वाले स्थान को संबोधित करता है" और किसी सूची को आगे बढ़ाने के दौरान चेक किया जा सकता है, पीछे की तरफ जाने का सबसे अच्छा तरीका क्या है?
इस कोड workson मैक लेकिन Windows पर नहीं (पहला तत्व परे घटती नहीं कर सकते हैं):
list<DVFGfxObj*>::iterator iter = m_Objs.end();
for (iter--; iter!=m_Objs.end(); iter--)// By accident discovered that the iterator is circular ?
{
}
इस विंडोज पर काम करता है:
list<DVFGfxObj*>::iterator iter = m_Objs.end();
do{
iter--;
} while (*iter != *m_Objs.begin());
वहाँ एक और तरीका पिछड़े पार करने के लिए है कि है एक लूप में लागू किया जा सकता है?
यह केवल कार्यान्वयन का दुर्घटना होगा कि आपका पहला उदाहरण (अंतराल() के मुकाबले सर्कुलर इटरेटर) काम करेगा। – Justsalt