Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 04.02.2019
Сообщений: 56
1

Сформировать вектор, состоящий из одинаковых элементов исходных векторов

21.03.2019, 20:13. Просмотров 953. Ответов 4


Ввести два вектора X и Y, состоящих из 10-ти элементов целого типа.
Сформировать вектор S, состоящий из одинаковых элементов исходных
векторов.
Есть начало кода, но не знаю, как создать третий вектор.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <vector>
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "ru");
    const int N = 10;
    int b = 0,k;
    vector<int> x(N);
    
    for (int i = 0; i < N; i++) {
        x[i] = rand() % N;
    }
    cout << "Первый вектор: ";
    for (int i = 0; i < N; i++) {
        cout <<  x[i] << " ";
    }
    cout << endl << endl;
    
    vector<int> y(N);
    
    for (int i = 0; i < N; i++) {
        y[i] = rand() % N;
    }
    cout << "Второй вектор: ";
    for (int i = 0; i < N; i++) {
        cout << y[i] << " ";
    }
    cout << endl << endl;
    vector<int> s(N);
    cout << "Третий вектор: ";
    for (int i = 0; i<N; i++)
        
            if (x[i] == y[i])
            {
                cout << s[i] << ";";
            }
    
    system("pause");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2019, 20:13
Ответы с готовыми решениями:

Сформировать массив S, состоящий из одинаковых элементов исходных массивов
2 массива X, Y, каждый из 10 эл-в. Сформировать массив S, состоящий из одинаковых эл-в исходных...

Сформировать массив, состоящий из одинаковых элементов исходных массивов
Ввести два массива X и Y, состоящих из 10-ти элементов целого типа. Сформировать массив S,...

Сформировать вектор Z с элементами исходных векторов
X{x1, x2,..., xn} и Y{y1, y2,..., yn} -исходные векторы. Сформировать вектор Zс элементами zi=...

Сформировать вектор, содержащий все элементы исходных векторов, расположенные в порядке убывания
Заданы два произвольных вектора V и W. Составить программу для формирования вектора R,содержащего...

4
565 / 404 / 132
Регистрация: 22.11.2017
Сообщений: 1,019
21.03.2019, 21:35 2
Первый и второй вектор представить множествами set (#include < set >) с именами a, b (можно копированием с адаптером итератора).
Выполнить пересечение (#include < algorithm >) этих множеств set_intersection(a.begin(), a.end(), b.begin(), b.end(), back_inserter(c));
Результат (одинаковые элементы исходных векторов) будут помещены в вектор c.
set<int> a;
set<int> b;
vector<int> c;
0
2 / 2 / 0
Регистрация: 04.02.2019
Сообщений: 56
21.03.2019, 22:09  [ТС] 3
SomniPhobia, не могли бы вы написать код?
0
565 / 404 / 132
Регистрация: 22.11.2017
Сообщений: 1,019
22.03.2019, 15:08 4
Mila27, могу.
Написал код. Если что не понятно -> спрашивай.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <iterator>
#include <random>
 
using namespace std;
 
template<typename T>
ostream& operator << (ostream& os, const vector<T> &v);
 
template<typename T>
ostream& operator << (ostream& os, const set<T> &v);
 
int main()
{
    system("color 0A");
    wcout.imbue(locale("rus_rus.866"));
    wcin.imbue(locale("rus_rus.866"));
 
    //Настройка STL генератора случайности
    random_device rd;
    mt19937 g{ rd() };
    const size_t N = 10u;
    uniform_int_distribution<> distr(0, N);
    auto rand_f = [&distr, &g] { return distr(g); };
 
    //Объявление контейнеров
    vector<int> x(N);
    vector<int> y(N);
    vector<int> s;
    //Заполнение контейнеров x и y
    generate(x.begin(), x.end(), rand_f);
    generate(y.begin(), y.end(), rand_f);
 
    //Объявление множеств
    set<int> xs;
    set<int> ys;
    //Копирование элементов контейнеров x и y в соотвествующие множества
    copy(x.begin(), x.end(), inserter(xs, xs.begin()));
    copy(y.begin(), y.end(), inserter(ys, ys.begin()));
 
    //Пересечение множеств (поиск элементов что есть в первом и во втором)
    //Пересекается xs с ys полученные элементы вставляются back_inserter() в контейнер s
    set_intersection(xs.begin(), xs.end(), ys.begin(), ys.end(), back_inserter(s));
 
    //Вывод на консоль содержимого контейнера x
    wcout << L"Первый вектор:" << endl;
    cout << x;
    cout << endl << endl;
    //Вывод на консоль содержимого контейнера y
    wcout << L"Второй вектор:" << endl;
    cout << y;
    cout << endl << endl;
 
    //Вывод на консоль содержимого множества xs
    wcout << L"Множество из элементов первого вектора:" << endl;
    cout << xs;
    cout << endl << endl;
    //Вывод на консоль содержимого множества ys
    wcout << L"Множество из элементов второго вектора:" << endl;
    cout << ys;
    cout << endl << endl;
 
    //Вывод на консоль содержимого контейнера s
    wcout << L"Третий вектор (содержит только те элементы что есть и в 1 и во 2 векторах):" << endl;
    cout << s;
    cout << endl << endl;
    
    system("pause");
    return 0;
}
 
template<typename T>
ostream& operator << (ostream& os, const vector<T> &v)
{
    for (const auto value : v)
    {
        os << value << " ";
    }
    return os;
}
 
template<typename T>
ostream& operator << (ostream& os, const set<T> &st)
{
    for (const auto value : st)
    {
        os << value << " ";
    }
    return os;
}
0
Миниатюры
Сформировать вектор, состоящий из одинаковых элементов исходных векторов  
2 / 2 / 0
Регистрация: 04.02.2019
Сообщений: 56
22.03.2019, 18:43  [ТС] 5
SomniPhobia, спасибо, но мне уже не надо)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2019, 18:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Сформировать список, состоящий из элементов, которые встречаются в обоих исходных списках
Помогите пожалуйста. Формировать список, состоящий из элементов, которые встречаются в обоих...

Сформировать новый массив, состоящий из элементов, равных соответственно суммам исходных массивов
помогите пожалуйста решить задачу даны три массива VEC 1=(1.0; 3.9; -2.6) VEC 2= (-7; 4.6;...

Сформировать третий массив, состоящий из тех элементов, которые присутствуют в двух исходных
Задача: Даны два массива. Сформировать третий массив, состоящий из тех элементов, которые...

Сформировать новый массив, состоящий из десяти элементов с наибольшими значениями исходных массивов
Произвольно заданы три одномерных массива. Сформировать новый массив, состоящий из десяти...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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