На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Вектор не хочет изменяться
    Есть два вектора:
    ExpandedWrap disabled
      std::vector<TreeListViewItem *> items;
      std::vector<TreeListViewItem *> displayedItems;

    пытаюсь их в цикле изменить:
    ExpandedWrap disabled
      for (int i = iSelected + 1; items[i]->level > items[iSelected]->level; i++)
      {
          items[i]->isVisible = !items[i]->isVisible;
          displayedItems[i]->isVisible = !displayedItems[i]->isVisible;
          //displayedItems.erase(i);
      }

    но почему-то на время итерации значения items[i]->isVisible и displayedItems[i]->isVisible меняются на противоположные, а на следующей итерации приходят к исходному значение. Т.е. если в векторе было так:
    Цитата

    true
    true
    true

    то на время первой итерации становится так
    Цитата

    false
    true
    true

    на время второй так
    Цитата

    true
    true
    false

    а к последней итерации опять так:
    Цитата

    true
    true
    true


    В чем может быть проблема?
      к примеру, элементы items и displayedItems могут указывать на одни и те же объекты TreeListViewItem
        Цитата Alek86 @
        к примеру, элементы items и displayedItems могут указывать на одни и те же объекты TreeListViewItem

        точно! это у меня бывает :) извиняюсь за беспокойство по пустякам
        а как удалять элементы из вектора по индексу? erase просит итератор...
          Цитата miksayer @
          а как удалять элементы из вектора по индексу? erase просит итератор...

          И в чём проблема? :huh:

          ExpandedWrap disabled
            vec.erase(vec.begin() + index);
            можно с помощью std::vector::erase(), std::vector::begin() и std::advance()
              всем спасибо, все понял
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0263 ]   [ 16 queries used ]   [ Generated: 27.04.24, 16:55 GMT ]