반응형
- C언어에서 랜덤 문자로 array 채우는 방법
for문 사용해서 일일이 채워준다.
char buf[100] = {0, };
for (int i=0; i<100; ++i) {
buf[i] = std::rand()%256;
}
참고로 std::rand() 사용하려면 include <random> 이 필요하다.
그리고 seed를 지정해줘야 한다.
srand(static_Cast<unsigned>(time(nullptr)));
- C++에서 랜럼 문자로 array 채우는 방법
std::generate를 사용하면 간편하게 가능하다.
#include <iostream>
#include <algorithm> // generate
#include <array>
#include <random>
using namespace std;
int main()
{
std::array<char, 20> buff;
srand(static_cast<unsigned>(time(nullptr)));
std::generate(buff.begin(), buff.end(), []{ return (std::rand()%256); });
// Print elements of the buff
for (int i=0; i<20; ++i) {
std::cout << buff[i] << " ";
}
return 0;
}
std::generate() 코드를 살펴보자면, buff.begin() 부터 buff.end()를 세 번째 인자로 채워준다.
간편하다.
- 실행 결과
- std::generate() 내부 로직
함수 내부 로직을 보면 사실 우리가 C언어로 작성한 것과 동일하다.
그러나 좋은 점은 세 번째 인자로 람다식을 사용할 수 있어서 간편하고 다양한 활용이 가능하다.
반응형