Я использую пустой вектор structs.C++: vectorof structs
сейчас, когда я ввод данных в один из элементов структуры, он меняет размер вектора?
если да, то как я должен инициализировать итератор? У меня ошибка времени выполнения, и я предполагаю, что мой итератор недействителен.
некоторые соответствующий код:
struct wordstype
{
string word;
int counter_same;
int counter_contained;
int counter_same1;
};
std::vector<wordstype>::iterator iv=vec1.begin();
string temp_str;
string::iterator is=str1.begin();
while (is!=str1.end())
{
if (((*is)!='-')&&((*is)!='.')&&((*is)!=',')&&((*is)!=';')&&((*is)!='?')&&((*is)!='!')&&((*is)!=':'))
{
temp_str.push_back(*is);
++is;
}
else
{
(*iv).word=temp_str;
++iv;
str1.erase(is);
temp_str.clear();
}
}
Возможный дубликат [C++: как вставить данные в элемент структуры (структура, расположенная в векторе)] (http://stackoverflow.com/questions/10208367/c-how-to-insert-data-to-a -struct-member-struct-location-in-vector) –
Вы должны отредактировать исходный вопрос, а не публиковать новый! –
В принципе, получите данные в слова Type и do vec1.push_back (wordsTypeObj); Это безопасно. – Jagannath