7 / 7 / 0
Регистрация: 14.05.2015
Сообщений: 145
|
|
1 | |
Поиск нескольких элементов массива/вектора02.09.2015, 01:16. Показов 3246. Ответов 7
Метки нет (Все метки)
Всем доброго времени суток. После нескольких часов безуспешного мозгового штурма и интернет-серфинга решил задать вопрос здесь. Попытаюсь ясно сформулировать.
У меня есть несколько переменных. Пусть это буду x,y,z. Есть несколько массивов A[], B[], C[]. В этих массивах различные переменные, но среди них есть те самые x y z. Только в одном массиве, например, есть только x, в другом только y. Мне надо найти тот массив, в котором встречаются все 3 переменные. Это может быть не массив, а например вектор, карта, может быть класс или еще все что угодно. Как организовать такой поиск значений? Чтобы было несколько последовательностей различных переменных, а надо найти только ту, в которой находятся все переменные, которые задал юзер. P.S. У меня есть предположение одно. Перебрать все элементы массива, и если какой-то из элементов равен x, то перебрать все элементы заново и найти y. Так же z. Но это слишком уж "колхозно". У меня этих массивов может быть много. И придется все перебирать, да еще и по несколько раз. Слишком затратно
0
|
02.09.2015, 01:16 | |
Ответы с готовыми решениями:
7
Поиск среди пар элементов вектора Вывести индексы нескольких элементов массива Найти сколько элементов первого вектора совпадают с элементами второго вектора Создание массива и поиск равных среднему арифметическому элементов массива |
8 / 8 / 6
Регистрация: 31.07.2015
Сообщений: 39
|
|
02.09.2015, 01:42 | 2 |
как вариант ищи сразу все три элемента в одном массиве, чтоб заново не перебирать.
навскидку: создать 3 флага, они будут соответствовать совпадению для каждого элемента, если все три флага тру, значит это твой нужный массив.
0
|
7 / 7 / 0
Регистрация: 14.05.2015
Сообщений: 145
|
|
02.09.2015, 01:48 [ТС] | 3 |
Monty_Python, про флаги и не подумал. Спасибо!) Работа по поиску элементов в одном массиве упростилась) А вот что с поиском по всем массивам. Мне все-таки придется их все перебирать на наличие той или иной переменной?
P.S. Просто это я вопрос задал для понимания вообще - как можно организовать поиск по массивам. Но на будущее я хочу уже сделать оконное приложение, в котором будут поля для нескольких переменных, и я не знаю сколько изначально пользователь их задаст. Как сделать флаги, не зная изначально сколько их?
0
|
8 / 8 / 6
Регистрация: 31.07.2015
Сообщений: 39
|
|
02.09.2015, 01:58 | 4 |
Два условия выхода из цикла по переборам массивов:
1. Делается break как только найден нужный массив. 2. Перебираются все массивы. Зависит от алгоритма и этапа когда будет определено необходимое количество элементов которые нужно найти. Можно вначале создать вектор, а затем когда узнаем количество то проинициализировать его нулями. Когда необходимый элемент найден то вместо нуля записываем единицу (поднимаем флаг), если в векторе все элементы равны единицам, то значит мы нашли наш массив, а если нет, то заново инициализируем его нулями и проверяем на соответствия в следующем массиве.
0
|
7 / 7 / 0
Регистрация: 14.05.2015
Сообщений: 145
|
|
02.09.2015, 02:01 [ТС] | 5 |
Monty_Python, и почему этому не учат в универе) Спасибо большое)
0
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,241
|
|
02.09.2015, 10:06 | 6 |
используйте для отсортированных данных алгоритм:
http://www.cplusplus.com/refer... /includes/
0
|
9 / 9 / 3
Регистрация: 02.03.2013
Сообщений: 53
|
||||||
03.09.2015, 13:47 | 7 | |||||
вот примитивная проверка
0
|
03.09.2015, 17:32 | 8 | ||||||||||
Еще такой вариант для ассоциативных контейнеров. Но это для любителя С++11.
1
|
03.09.2015, 17:32 | |
03.09.2015, 17:32 | |
Помогаю со студенческими работами здесь
8
Определить количество положительных элементов вектора С(10) и заменить этим значением минимальный элемент вектора А(5) Поиск суммы элементов массива и количества положительных элементов в нем Среди элементов массива Z (m) найти k (k << m) крупнейших. Поиск осуществить за один проход (просмотр) массива Z Заданный вектор А, состоящий из n элементов. Переставить компоненты вектора, размещенные после самого элемента вектора А Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |