[C++] Hogy kell egy tömböt feltölteni véletlen számokkal, úgy, hogy ne tartalmazzon 2 ugyanolyan számot?
C++ nyelven ha nem bohóckodik az ember így néz ki. Ha nem tervez az ember ennyire elmerülni benne, akkor érdemesebb Pythont, Pascalt vagy valami egyszerűbbet tanulni.
template<typename Container, typename T>
auto Find(Container& container, const T& value)
{
auto it = std::begin(container);
for (; it < std::end(container); ++it)
{
if (*it == value) { break; }
}
return it;
}
template<typename Container, typename T>
bool Contains(const Container& container, const T& value)
{
return Find(container, value) != std::end(container);
}
int main()
{
constexpr auto howManyRandom = 10;
std::mt19937 engine{std::random_device{}()};
std::uniform_int_distribution<int> uid{1,20};
auto vec = std::vector<int>{};
vec.reserve(howManyRandom);
for (std::size_t i = 0; i < howManyRandom; )
{
const auto rnd = uid(engine);
if (!Contains(vec, rnd))
{
vec.emplace_back(rnd);
++i;
}
}
std::cin.get();
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!