(배열에 넣고)번호가 나올때마다 해당 비트를 1로 설정합니다.
중복이 나와도 이미 1이기 때문에 상관없습니다.
--> 요 내용을 잘 몰라서요 조금 자세히 말씀해 주시면 감사하겠습니다.
지나가다 님이 쓰신 글 :
: 전화번호 1억개
: 전화번호를 숫자로 형변환합니다.
: 0~1억까지의 숫자가 나오겠지요.
:
: 한 번호를 한 비트로 간주하면 12,500,000 바이트가 되겠지요.
: 12MB 정도 됩니다.
:
: (배열에 넣고)번호가 나올때마다 해당 비트를 1로 설정합니다.
: 중복이 나와도 이미 1이기 때문에 상관없습니다.
:
: 이런 방식이면 최종 추출 전화번호는 정렬되어 있고 연산속도도 개선이 가능합니다.
:
: ps. 경우에 따라 가운데 국번 3자리, 4자리를 구분하시면 됩니다.
:
:
:
:
: 하안인 님이 쓰신 글 :
: :
: : 1억개의 데이타를 올린 후 그중에서 램덤으로 데이타를 추출하려고 합니다.
: :
: : vector 를 이용해서 일억개의 데이타를 넣은 후 추출하려고 하니 에러가 나네요.
: :
: : AcsMan A;
: : for(i = 1; i <= 9999; i++)
: : for(j = 1; j <= 9999; j++)
: : {
: : s.printf("010-%04d-%04d",i,j);
: : A.phone = s;
: : v_acsman.push_back(A);
: : }
: :
: : randomize();
: : i = 0;
: : while(i < 400000)
: : {
: : j = random(v_acsman.size());
: : A = v_acsman.at(j);
: : v_man.push_back(A);
: : v_acsman.erase(v_acsman.begin()+j);
: : i++;
: : }
: : 1억개중 40만개를 추출하려고 하는데 vector 말고 다른것을 써야 하나요.
: :
|