Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 77

Заполнение вектора множествами

24.11.2022, 10:38. Показов 817. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как можно создать вектор с множествами, чтобы он заполнился не с клавиатуры, а случайными множествами.
Например vector<int> v={(2,1),(5,8),(3,4)}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2022, 10:38
Ответы с готовыми решениями:

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

заполнение вектора по модулю
Заполняет вектор по модулю 2: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; int main() { ...

Заполнение вектора в функции
Произошел такой момент, надо было сделать программу в C++ с функциями ввода вектора,суммирования данных вектора и вывода вектора.Уже...

6
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
24.11.2022, 10:53
https://ru.cppreference.com/w/cpp/numeric/random
0
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 77
24.11.2022, 11:08  [ТС]
А попроще никак?
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
24.11.2022, 11:12
rand() и srand()(хедер cstdlib) плюс хедер ctime для srand().
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
24.11.2022, 12:14
Ну так приведи свой код заполнения с клавиатуры раз дело не в самих векторах и множествах, а лишь в получении чисел для заполнения! Зачем зря напрягать народ вспоминать вектора и множества, если они уже написаны?
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
24.11.2022, 21:56
Цитата Сообщение от Шляпадляменя Посмотреть сообщение
А попроще никак?
Что такое "попроще"? Чем random сложен?!

Смари, для генерации случайных чисел тебе нужно две вещи.
- генератор случайных чисел, который нужно инициализировать каким-то зерном, обычно текущим временем;
- приведение этих случайных чисел к нужному тебе диапазону.
Навскидку у тебя есть два варианта:
- старый подход - библиотека <cstdlib> (srand/rand)

C++
1
2
3
4
5
6
7
#include <ctime> // библиотека для времени
#include <cstdlib> // библиотека с функциями srand/randin
...
// инициализация генератора случайных чисел текущим временем
    srand(time(nullptr)); 
// получение случайного числа и приведение его вручную к диапазону [-50, 50]
    int randomValue = rand() % 101 - 50;
- новый подход - библиотека <random> (random_engine/distribution)
C++
1
2
3
4
5
6
7
8
9
10
11
#include <chrono> // библиотека времени
#include <random> // библиотека с классами для генерации случайных чисел
 
...
 
    // генератор случайных чисел, инициализированный текущим временем
    std::default_random_engine randomEngine(std::chrono::system_clock::now().time_since_epoch().count());
    // приводитель случайных чисел к нужному диапазону
    std::uniform_int_distribution<int> distribution(-50, 50);
    // получение случайного числа в диапазоне
    int randomValue = distribution(randomEngine);
По своей сути это одно и то же.
Новый подход обладает рядом преимуществ, и парой недостатков, которые несколько длинновато писать, но зато легко нагуглить.

Добавлено через 5 часов 35 минут
Цитата Сообщение от Шляпадляменя Посмотреть сообщение
Подскажите, как можно создать вектор с множествами, чтобы он заполнился не с клавиатуры, а случайными множествами.
Например так. Создать вектор множеств нужного размера. Затем пройтись по каждому множеству в векторе и насувать туда нужное количество случайных элементов.
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
#include <iostream>
#include <chrono>
#include <random>
#include <vector>
#include <set>
#include <algorithm>
 
 
template<typename T>
std::ostream &operator<<(std::ostream &out, const std::set<T> &set) {
    out << '(';
    for (auto i = set.begin(), end = set.end(); i != end;) {
        out << *i;
        if (++i != end) {
            out << ", ";
        }
    }
    return out << ')';
}
 
template<typename T>
std::ostream &operator<<(std::ostream &out, const std::vector<T> &vector) {
    out << '[';
    for (auto i = vector.begin(), end = vector.end(); i != end;) {
        out << *i;
        if (++i != end) {
            out << ", ";
        }
    }
    return out << ']';
}
 
 
int main() {
 
    // генератор случайных чисел, инициализированный текущим временем
    std::default_random_engine randomEngine(std::chrono::system_clock::now().time_since_epoch().count());
    // приведение случайных чисел к нужному диапазону
    std::uniform_int_distribution<int> valueDistribution(-50, 50);
    // лямбда получение случайного числа
    auto randomValueGenerator = [&]() { return valueDistribution(randomEngine); };
 
    // дистрибуция случайных чисел для случайных длин
    std::uniform_int_distribution<std::size_t> sizeDistribution(10, 15);
 
    // вектор множеств случайной длины
    std::vector<std::set<int>> vectorOfSets(sizeDistribution(randomEngine));
    // генерация случайных значений для множеств
    std::for_each(vectorOfSets.begin(), vectorOfSets.end(),
                  [&](std::set<int> &set) {
                      std::generate_n(std::inserter(set, set.begin()), sizeDistribution(randomEngine), randomValueGenerator);
                  });
    
    std::cout << vectorOfSets << std::endl;
    return 0;
}
0
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 77
01.12.2022, 13:13  [ТС]
Разобрался сам
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.12.2022, 13:13
Помогаю со студенческими работами здесь

Заполнение вектора из файла
Ребята, подскажите, как считать из файла числа типа double в вектор и вывести на экран? А также потом записать в файл?

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

Заполнение вектора в цикле
Попробовал так (для освоения материала) #include &lt;vcl.h&gt; #include &lt;vector&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; ...

заполнение двухмерного вектора
Здравствуйте, хотел разобраться с двухмерным вектором, но что-то застрял По идее структура карточек для запоминания: вопрос-ответ. ...

Заполнение вектора векторов
Всем привет, не уверен, правильно ли я заполняю вектор векторов с char'ом. Ниже код, всё ли верно? vector&lt;vector&lt;char&gt;&gt;...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru