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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
leha-demi
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 125
#1

Поиск одинаковых элементов в 2 массивах - C++

11.06.2011, 17:43. Просмотров 2210. Ответов 4
Метки нет (Все метки)

Всем привет)
Как можно организовать поиск одинаковых элементов в 2 массивах?
(сам цикл подскажите пож...)
Спасибо заранее)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 17:43     Поиск одинаковых элементов в 2 массивах
Посмотрите здесь:

C++ Поиск одинаковых элементов в массиве
C++ Поиск одинаковых элементов
C++ Поиск одинаковых элементов массива
Поиск одинаковых элементов в массиве C++
Поиск элементов в массивах C++
Определить имеется ли в заданных массивах хотя бы одна пара одинаковых элементов C++
C++ Поиск одинаковых чисел в трех массивах
Посчитать количество одинаковых элементов в двух массивах C++
Поиск одинаковых элементов в векторе C++
Поиск одинаковых элементов в массивах! C++
Поиск элементов в одномерных массивах C++
Поиск элементов в одномерных массивах C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.06.2011, 17:49     Поиск одинаковых элементов в 2 массивах #2
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
int main(){
    int arr1[] = {1,2,3,4,5},len1 = sizeof(arr1)/sizeof(*arr1);
    int arr2[] = {5,6,7,8,3,10},len2 = sizeof(arr2)/sizeof(*arr2);
    for (int i=0; i < len1 ; i++)
        for (int j=0; j < len2; j++)
            if (arr1[i] == arr2[j]) std::cout << arr1[i] << ' ';
    return 0;
}
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
11.06.2011, 17:50     Поиск одинаковых элементов в 2 массивах #3
C++
1
2
3
4
5
6
for ( int i = 0; i < SizeOfFirst; i++ )
{
    for ( int j = 0; j < SizeOfSecond; j++ )
        if ( a [ i ] == b [ j ] )
            std::cout << a [ i ] << " ";
}
но элементы могут повторяться, так как тут нет контроля над уже найденными совпадениями...
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.06.2011, 17:55     Поиск одинаковых элементов в 2 массивах #4
С контролем
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <map>
int main(){
    int arr1[] = {1,2,3,4,5,3},len1 = sizeof(arr1)/sizeof(*arr1);
    int arr2[] = {5,6,7,8,3,10,3},len2 = sizeof(arr2)/sizeof(*arr2);
    std::map<int,int> m;
    for (int i=0; i < len1 ; i++)
        ++m[arr1[i]];
    for (int i=0; i < len2 ; i++)
        ++m[arr2[i]];
    for (std::map<int,int>::iterator i = m.begin(); i != m.end(); i++)
        if ((*i).second > 1) std::cout << (*i).first << ' ';    
    return 0;
}
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.06.2011, 18:00     Поиск одинаковых элементов в 2 массивах #5
можно чуть попроще
C++
1
2
3
4
5
6
7
    for (int i=0; i<len1; i++)
        for (int j=0; j<len2; j++)
            if (arr1[i]==arr2[j])
            m[arr1[i]]=0;
 
    for (std::map<int,int>::iterator it=m.begin(); it!=m.end(); it++)
        std::cout << it->first << ' ';
Yandex
Объявления
11.06.2011, 18:00     Поиск одинаковых элементов в 2 массивах
Ответ Создать тему
Опции темы

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