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

Как рандомно заполнить вектор? Не могу найти ошибку

23.02.2015, 12:04. Показов 6347. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот код, в консоли выдаёт "Не является внутренней или внешней командой"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
using namespace std;
int main();
{
    int n;
    cout << "Enter size of vectors" << endl;
    cin >> n;
    std::vector<int>myVector1(n);
    std::vector<int>myVector2(n);
    std::vector<int>myVector3(n);
    for (auto&x : myVector1)
        x = rand() % n;
    cout << myVector1 << endl;
    for (auto&x : myVector2)
        x = rand() % n;
    cout << myVector2 << endl;
    for (auto&x : myVector3)
        x = rand() % n;
    cout << myVector3 << endl;
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2015, 12:04
Ответы с готовыми решениями:

Не могу найти ошибку, заполнить массив тридцатью первыми простыми числами
Пытался заполнить массив тридцатью первыми простыми числами, но, видимо, накосячил с операторными скобками, помогите, пожалуйста, найти...

Не могу найти ошибку. Создать массив, заполнить его случайными элементами, распечатать, перевернуть
Создать массив, заполнить его случайными элементами, распечатать, перевернуть, и снова распечатать(при переворачивании нежелательно...

Как рандомно заполнить рваный массив
Как рандомно заполнить рваный массив?

26
3 / 2 / 0
Регистрация: 31.01.2015
Сообщений: 9
23.02.2015, 13:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от zss Посмотреть сообщение
почему-то не катит.
bind2nd - возвращает из бинарного(2 аргумента) функционального объекта, унарный(1 аргумент) объект. bind1st ожидает первым аргументом бинарный функциональный объект, а там унарный.
0
619 / 218 / 51
Регистрация: 22.11.2010
Сообщений: 1,781
Записей в блоге: 3
23.02.2015, 13:55
Цитата Сообщение от zss Посмотреть сообщение
Возьмите пример из поста 8.
и добавьте
#include <ctime>
p.s. Советую читать сообщения об ошибках:
error C3861: time: идентификатор не найден
Ставим курсор на слово time и нажимаем F1.
В появившемся описании time ищем какой для нее надо include
не знаю, может разница в компиляторе...
у меня c free и и ни одного сообщения об ошибке, код выполняется без ошибок.
0
Модератор
Эксперт С++
 Аватар для zss
13792 / 10984 / 6492
Регистрация: 18.12.2011
Сообщений: 29,285
23.02.2015, 13:57
Цитата Сообщение от kovkyr Посмотреть сообщение
а там унарный
получается без bind в этом примере никак?
0
3 / 2 / 0
Регистрация: 31.01.2015
Сообщений: 9
23.02.2015, 14:03
Цитата Сообщение от kovkyr Посмотреть сообщение
почему-то не катит.
можно еще так:
C++
1
std::bind(bind2nd(modulus<int>(),n),std::bind(rand))
bind2nd подставляет во второй n, а bind в первый rand

Добавлено через 5 минут
Цитата Сообщение от zss Посмотреть сообщение
получается без bind в этом примере никак?
Без C++11? Думаю, что используя только bind1st и bind2nd в третьем параметре std::generate нет. Функция std::generate ожидает функциональный объект без параметров. Но и bind1st и bind2nd возвращают функциональный объект с одним параметром. В то время как bind в примере, без параметров.
0
Модератор
Эксперт С++
 Аватар для zss
13792 / 10984 / 6492
Регистрация: 18.12.2011
Сообщений: 29,285
23.02.2015, 14:13
А так почему нельзя написать?
C++
1
std::bind(bind2nd(modulus<int>(),n),rand)
0
3 / 2 / 0
Регистрация: 31.01.2015
Сообщений: 9
24.02.2015, 20:48
Цитата Сообщение от zss Посмотреть сообщение
А так почему нельзя написать?
Думаю, что это особенность работы bind и в этом случае bind генерирует выражение, которое передает саму функцию rand как аргумент в modulus. Соответственно выражение:
C++
1
std::bind(bind2nd(modulus<int>(),n),rand)()
точно так же как и
C++
1
bind2nd(modulus<int>(),n)(rand);
не может быть вызвано. И компилятор в обоих случаях генерирует аналогичные ошибки C2664:
Bash
1
error C2664: int std::binder2nd<_Fn2>::operator ()(int &) const: невозможно преобразовать параметр 1 из "int (__cdecl *)(void)" в "int &"
То есть modulus ожидает значение int, а bind пробует передать rand.

Думаю, что это связанно с is_bind_expression. Вот код для размышления:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
 
template <typename Ti>
void test(Ti arg) {
    std::cout << std::boolalpha;
    std::cout << std::is_bind_expression<Ti>::value << std::endl;
}
 
int foo(int a, int b) {
    return a+b;
}
 
int main() {
    int iVal(1);
    float fVal(1);
    double dVal(1);
    auto rVal1 = rand;
    auto rVal2 = rand();
    auto brVal1 = std::bind(rand); // bind expression
    auto brVal2 = std::bind(rand)(); // called bind expression
    std::minus<int> mrVal1;
    auto mrVal2 = std::bind(foo,1,2); // bind expression
    auto mrVal3 = std::minus<int>()(1,2);
 
    test(iVal);
    test(fVal);
    test(dVal);
    test(rVal1);
    test(rVal2);
    test(brVal1); // bind expression
    test(brVal2);
    test(mrVal1);
    test(mrVal2); // bind expression
    test(mrVal3);
 
    return 0;
}


Выжимка из стандарта приложена картинкой.
Миниатюры
Как рандомно заполнить вектор? Не могу найти ошибку  
1
3 / 2 / 0
Регистрация: 31.01.2015
Сообщений: 9
24.02.2015, 21:12
Цитата Сообщение от kovkyr Посмотреть сообщение
Вот код для размышления
Можно сделать структуру и задать bind_expression в true:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <type_traits>
#include <functional>
#include <ctime>
 
template <typename Ti>
void test(Ti arg) {
    std::cout << std::boolalpha;
    std::cout << std::is_bind_expression<Ti>::value << std::endl;
}
 
struct myrand {
    typedef int result_type;
    int operator()() const { return rand(); }
};
 
namespace std {
    template<>
    struct is_bind_expression<myrand> : public true_type {};
}
 
 
int main()
{
    srand((unsigned)time(NULL));
    auto rVal = rand;
    auto mrVal = myrand();
 
    test(rVal);
    test(mrVal);
 
    const int n = 5;
    auto fn = std::bind(bind2nd(std::modulus<int>(),n),myrand());
    std::cout << fn();
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.02.2015, 21:12

Не могу найти ошибку!! не могу не как разобраться! надо до завтра.
условие: Для 7 человек, среди которых есть мужчины и женщины, хранятся следующие данные: имя, пол (true - мужской, false - женский),...

Как рандомно заполнить массив с неповторяющимеся значениями?
Дан, допустим, массив из 16 значений, как заполнить его рандомно, но так, что бы ни одно число не повторялось?

Как рандомно заполнить квадратную матрицу звездочками?
Мне нужно на дошке 5 на 5 рандомно поставить 5 звездочек. Как это можна сделать? Я нашла функцию rand(). Но как сделать не знаю ....

Как заполнить круг белыми точками рандомно?
putpixel(random((320-R)+1+(320+R)-1), random((240-R)+1+(240+R)-1),white); Что нужно написать тут чтобы точки были только внутри круга? ...

Как рандомно заполнить имя пользователя и пароль?
#include &quot;pch.h&quot; #include &lt;iostream&gt; #include &quot;string.h&quot; #include &lt;locale&gt; using namespace std; #define N 10; ...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru