map/set iterator not dereferencable
От: Sempsey  
Дата: 20.09.10 19:15
Оценка:
Приветсвую!


class Dir {
    typedef map<string,Dir*> dir_t;
    public:
        void print(int spaces);
        Dir* add_subdir(const string& name);
    private:
        dir_t subdirs;
};

Dir* Dir::add_subdir(const string& name){
    dir_t::iterator it;
    bool inserted;
    pair<dir_t::iterator,bool>(it,inserted)=subdirs.insert(pair<string,Dir*>(name,static_cast<Dir*>(NULL)));
    if(inserted==true){
        it->second=new Dir();
    }
    
    return it->second;
}



GCC нормально компилит и выполняет, VS Express компилит, но при за пуске выдает:
Debug Assertion Failed!
Expression map/set iterator not dereferencable.
Подскажите в чем затык и как быть? Спасибо!
visual studio express 10 c++
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.