2016-10-01 3 views
1

Я пытаюсь добавить новый набор в мой вектор здесь мой кодкак добавить новый набор в вектор C++

set<string>::iterator iter; 
vector<set<string> > myVector; 
set<string> mySet; 

mySet.insert("hello"); 
myVector.push_back(mySet); 
mySet.clear(); 
mySet.insert("world"); 
myVector.push_back(mySet); 

cout << mySet.size() << endl; 
cout << myVector.size() << endl; 
// printing out vector of sets 
for (int i = 0; i < myVector.size(); i++) 
{ 
    for (iter = mySet.begin(); iter != mySet.end(); ++iter) 
    { 
     cout << *iter << " "; 
    } 
    cout << endl; 
} 

Выход

1 
    2 
    world 
    world 

Am I печать или осуществления неправильно ? Я хочу, чтобы напечатать

1 
    2 
    hello 
    world 
+1

Используйте 'myVector [я]' вместо 'mySet' в течение цикла. – songyuanyao

+0

хотя вы итерируете элементы в векторе, вы всегда используете mySet в теле цикла. Вам нужно что-то вроде set & set_i = myVector [i]; для доступа к набору для каждой итерации – Jimmy

+0

спасибо, что он работает сейчас, есть ли лучший способ реализовать это? – muchtolearn

ответ

0

Прежде всего, вы не печатает вектор значений

for (int i = 0; i < myVector.size(); i++) 
{ 
    for (iter = myVector[i].begin(); iter != myVector[i].end(); ++iter) 
    { 
     cout << *iter << " "; 
    } 
    cout << endl; 
} 
Смежные вопросы