1. C++ / Говнокод #13616

    +83

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    typedef map<string,string> keys_map;
    ...
    const keys_map::const_iterator SectionData::operator[](int Index) const
    {                                                                     
            keys_map::const_iterator it=m_Keys.begin();                   
            int cnt=0;
            for(;it!=m_Keys.end(); it++)                                  
            {
                    if(cnt==Index)                                        
                            return it;                                    
                    cnt++;  
            }       
            return (keys_map::const_iterator)NULL;                        
    }
    ...
    SectionData section;
    keys_map::::const_iterator iter;
    for (i=0; i<section.GetSize(); i++) {
            iter = section[i];
            ...
    }

    правильный способ итерироваться по мапу

    Запостил: gpr, 16 Августа 2013

    Комментарии (2) RSS

    • строка 13 - ЧТО ЭТО??
      Ответить
      • Видимо m_Keys.end(), но юзает деталь реализации (то что невалидный итератор представлен нуллом).
        Ответить

    Добавить комментарий