2010-11-22 3 views
0
void Record::Update() { 

string choice; 

cout << "Enter ID: " << endl; 
cin >> IDValue; 
    for(Itr = List.begin() ; Itr !=List.end() ; Itr+) { 
    if(Itr->GetID() == IDValue) 
    { 
    cout << Transit->GetID() << endl; 
    cout << "Would you like to set Name ? (y/n) :"; 
    cin >> choice; 
    if (choice == 'y') 
     cin >> strName; 
    Itr->SetName(strName); 

    cout << Itr->GetName() << endl; 
    cout << Itr->GetLocation() << endl; 
    } 

    } 
} 

Эта функция находит запись по ее уникальному идентификационному номеру. Каждой новой записи присваивается идентификационный номер. Если я войду в ID 2, функция отобразит запись с идентификатором 2. Как я могу изменить один из атрибутов записи? В этом случае его местоположение.Обновить значение в векторе

+2

Кто знает. Какой тип объекта хранится в этом контейнере и позволяет вам изменить местоположение? –

+0

У вас есть методы мутаторов? Будет ли 'Transit-> SetID (9)' работать? –

+0

Ненавижу, когда вы создаете новую учетную запись каждый раз, когда задаете вопросы: * http://stackoverflow.com/questions/3860271 * http://stackoverflow.com/questions/4108853 –

ответ

0
void RecordList::UpdateLocation() { 

    int IDValue; 
    char* strName; 
    char opt; 

    cout << "Enter ID number to update: " << endl; 
    cin >> IDValue; 
     for(Transit = List.begin() ; Transit !=List.end() ; Transit++) { 
     if(Transit->GetID() == IDValue) 
     { 
     cout << Transit->GetID() << endl; 
     cout << "Would you like to set Name ? (y/n) :"; 
     cin >> opt; 
     if (opt == 'y') 
      cin >> strName; 
     Transit->SetName(strName); 

     cout << Transit->GetName() << endl; 
     cout << Transit->GetLocation() << endl; 
     } 

    } 
} 
+0

Спасибо, это было проще, чем я думал, что это будет быть. Я на самом деле просто создал новую локальную переменную, а затем ввел ее с помощью Transit-> SetName (strName); – chief

0

Вы программируете объект Transit на метод setXXX(), а затем вызываете этот метод. Итераторы работают в основном как указатели, поэтому вы можете изменить переменную класса с помощью метода setter.

Смежные вопросы