Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Mesteriis
373 / 156 / 40
Регистрация: 08.08.2015
Сообщений: 1,104
Завершенные тесты: 1
#1

Интересная особенность в работе вектора - C++

10.11.2015, 00:42. Просмотров 446. Ответов 22
Метки нет (Все метки)

Доброе время суток!

PS Даже не знаю как вам объяснить не грузя кучей кода, пока попробую на словах но если нужно могу выкинуть весь код!

Значит так:
Заполняем вектор элементами (имена файлов прочитанные из директории) Вектор имеет структуру:
Имя файла (строка)
Расширение (строка)
Путь (строка)
Номер (Инт)
Дальше циклом читаем этот вектор с условием что если тип расширение равен (например) dmg (маковский exe) то скопировать его в другой вектор! а элемент в первоначальном удалить!

Но по какой то неведомой причине условия пропускает несколько элементов которые она должна отработать!
Не могу найти причину такого поведения, у кого какие мысли?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2015, 00:42     Интересная особенность в работе вектора
Посмотрите здесь:
C++ Не изменяется элемент вектора при работе с ним по указателю
C++ Особенность объявления функции
C++ В чем особенность функции типа void от других типов?
Ошибка с итераторами для целочисленного вектора и вектора структуры C++
STL. Функция, которая будет искать элементы большее среднего арифметического вектора и удалять их из вектора C++
Заданы три вектора a(n), b(m), c(k). Вывести наименование вектора, в котором максимальна сумма четных элементов, стоящих на нечетных местах C++
C++ Изменение вектора. Наибольший элемент вектора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pproger
163 / 66 / 13
Регистрация: 22.03.2011
Сообщений: 188
10.11.2015, 12:12     Интересная особенность в работе вектора #21
Tulosba, под модификацией элементов я имел ввиду автора, а не алгоритм
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.11.2015, 12:26     Интересная особенность в работе вектора #22
Цитата Сообщение от pproger Посмотреть сообщение
под модификацией элементов я имел ввиду автора, а не алгоритм
Странно.
Цитата Сообщение от Mesteriis Посмотреть сообщение
то скопировать его в другой вектор! а элемент в первоначальном удалить!
Ну, возможно что-то изменилось с исходной постановки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2015, 12:35     Интересная особенность в работе вектора
Еще ссылки по теме:
C++ Переменной R присвоить значение 1, если длина вектора А больше длины вектора В, и значение 0 в противном случае
Если возможно, упорядочить булевы вектора, или вывести сообщение "Вектора несравнимы" C++
Написать функцию для класса, возращающую данный из вектора обьектов класса по итератору вектора C++
C++ Интересная конструкция в C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Mesteriis
373 / 156 / 40
Регистрация: 08.08.2015
Сообщений: 1,104
Завершенные тесты: 1
10.11.2015, 12:35  [ТС]     Интересная особенность в работе вектора #23
Не ссорьтесь, Реши проблему по другому, при переборе вектора не удалял элемент а меня его ключ (было в моей структуре такое поле), с false на true! А в самом конце когда все элементы были true удалял весь вектор! pproger, был прав когда я в цикле удалял элемент после его копирования (допустим 3й), то следующий элемент который отвечал моим условиям уже был не 7й, а 7-1=6й и так далее, а shrink_to_fit нечего бы не дал, так как изначально я не резервировал память под вектор, потому что не знал какой емкости он будет. Да и ужатие его тоже не принесет не какого смысла! (Ну я про данную ситуацию)
Yandex
Объявления
10.11.2015, 12:35     Интересная особенность в работе вектора
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru