2017-01-29 9 views
-1

для проекта, над которым я работаю Я хотел бы иметь вектор «для каждого пользователя» для объектов struct.Создание нескольких экземпляров одного и того же вектора

Итак, я сделал это, чтобы объявить вектор:

// Defined in global namespace, and the pointer to structure objects is deliberate 
typedef std::vector<s_AttachmentData*> AttachmentsContainer; 

struct s_User 
{ 
public: 
    AttachmentsContainer attachmentsData; 
}; 

Я могу добавить такие объекты структуры к вектору без проблем. Я пытаюсь фактически получить доступ и изменить данные через итератор. Вот то, что я пробовал:

// 'p' is pointer to s_User structure above 
for (AttachmentsContainer::iterator it = p->attachmentsData.begin(); it != p->attachmentsData.end(); ++it) 
{ 
    // Do stuff here, however I can't get to this point because the application crashes. 
} 

Я пытаюсь просто получить доступ к данным в контейнере, я могу заполнить векторы, но когда я петля и попытаться получить доступ что-нибудь, что я получаю ошибка векторных итераторов несовместимая ". Если кто-то может относиться к этому или может подтолкнуть меня в правильном направлении, я буду очень признателен! Я не мог найти ничего подобного, как ни странно.

+0

Что вещи "вы делаете именно? В чем проблема, с которой вы столкнулись? – dreamzor

+1

Обеспечьте хорошее [MCVE]. – Inline

+0

@cawfee: Идея состоит в том, что вы отправляете код, который не работает, и скопируйте и вставьте сообщение об ошибке в вопрос. Это облегчает поиск информации для будущих читателей, и, конечно, это также облегчает ответ на вопрос. –

ответ

0

*it предоставит вам ссылку на s_AttachmentData*.

Если вы действительно предназначены для хранения указателей на s_AttachmentData, то вы можете получить доступ к тем, с чем-то вроде

(*it)->... 
Смежные вопросы