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

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

Войти
Регистрация
Восстановить пароль
 
Sedlex
6 / 6 / 1
Регистрация: 13.01.2013
Сообщений: 121
#1

Обменять элементы двух массивов местами - C++

04.05.2014, 21:59. Просмотров 309. Ответов 2
Метки нет (Все метки)

Товарищи здравствуйте, помогите с задачей на STL Контейнер Vector.

1. Создать массив из пяти целых чисел. Инициализировать все его элементы случайным числом. Цикл не использовать.
2. Создать второй массив такого же размера. Ввести его элементы с клавиатуры.
3. Обменять элементы двух массивов местами. Цикл не использовать.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2014, 21:59     Обменять элементы двух массивов местами
Посмотрите здесь:
Найти максимальные элементы в двух массивах и обменять их местами C++
C++ Поменять элементы двух одномерных массивов местами
C++ Обменять содержимое двух заданных массивов
Определить максимальные элементы и поменять их местами в каждом из двух заданных массивов C++
Определить максимальные элементы в каждом из двух массивов вещественных чисел, и поменять их местами C++
Записать элементы из двух массивов в третий и поменять в нем местами минимальный и максимальный элемент C++
C++ Создать два массива, которые будут содержать: все четные элементы двух массивов; все нечетные элементы двух массивов
C++ В каждом столбце прямоугольной матрицы обменять местами min и max элементы
C++ Поменять местами содержимое двух массивов
C++ Cравнить элементы двух массивов
C++ Общие элементы двух массивов
Собрать общие элементы двух массивов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
04.05.2014, 22:35     Обменять элементы двух массивов местами #2
Sedlex, как то так
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
#include <iostream>
#include <vector>
#include<random>
#include<functional>
#include<algorithm>
#include<iterator>
 
int main()
{
    std::mt19937 gen{ std::random_device()() };
    std::uniform_int_distribution<int> dis(-100, 100);
    std::vector <int> ivec(5);
    std::generate(ivec.begin(), ivec.end(), [&dis, &gen] {return dis(gen); });
    std::copy(ivec.begin(), ivec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::vector <int> ivec_two(5);
    std::cout << "\nEnter a new vector: ";
    for (auto it = ivec_two.begin(); it != ivec_two.end(); ++it)
        std::cin >> *it;
    ivec.swap(ivec_two);
    std::cout << "\nvector 1: ";
    std::copy(ivec.begin(), ivec.end(), std::ostream_iterator <int>(std::cout, " "));
    std::cout << "\nvector 2: ";
    std::copy(ivec_two.begin(), ivec_two.end(), std::ostream_iterator <int>(std::cout, " "));
    return 0;
}
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
04.05.2014, 23:49     Обменять элементы двух массивов местами #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <functional>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <random>
#include <vector>
#include <ctime>
 
int main()
{
    const size_t vectorSize = 5;
    auto randomFunction = std::bind(std::uniform_int_distribution <> (-50, 50), 
                                    std::default_random_engine (std::time(nullptr)));
    std::vector <int> firstVector(vectorSize);
    std::generate(firstVector.begin(), firstVector.end(), randomFunction); //инициализация случайными числами
 
    std::vector <int> secondVector;
    std::copy(std::istream_iterator <int> (std::cin), std::istream_iterator <int>(), std::back_inserter(secondVector)); //ввод с клавиатуры
    if (secondVector.size() > 5) {
        secondVector.erase(secondVector.begin() + 5, secondVector.end());
    }
 
    std::swap(firstVector, secondVector);
    std::cout << "First: ";
    std::copy(firstVector.begin(), firstVector.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl << "Second: ";
    std::copy(secondVector.begin(), secondVector.end(), std::ostream_iterator <int> (std::cout, " "));
 
    std::system("pause");
    return 0;
}
Ответ Создать тему
Опции темы

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