Я новичок в c++, и я не понимаю, почему цифры находятся за пределами диапазона. я
прокомментировал, где я думал, что вы начинаете диапазон
#include <vector>
#include <iostream>
#include <random>
#include <time.h>
using namespace std;
using std::vector;
int main()
{
vector<int> deck;
default_random_engine eng(time(0));
Я думал, что здесь я указываю диапазон случайных чисел, но вместо этого я получаю числа за пределами этого диапазона
uniform_int_distribution<int> dis(0, 51);
int pos1;
int pos2;
int num1;
int num2;
int i;
int n;
int m;
for (i = 1; i < 53; i++)
{
deck.push_back(i);
}
pos1 = dis(eng);
pos2 = dis(eng);
num1 = deck.at(pos1);
num2 = deck.at(pos2);
for (n = 0; n < 100; n++)
{
pos1 = dis(eng);
pos2 = dis(eng);
cout << pos1 << "\n" << pos2;
}
}
Похоже, проблема в последней строке cout << pos1 << "\n" << pos2;
(здесь вы забыли добавить << "\n"
). Поэтому, если ваша программа печатает четыре номера (например, 22, 23, 24, 25), вы увидите следующий текст:
22
2324
25
Таким образом, номер 2324 будет за пределами вашего диапазона, но на самом деле это конкатенация двух чисел.