이 코드는 vector<int>를 사용하여 난수를 생성하고, 다음과 같은 문제를 해결합니다.
50)가 존재하는지 확인하고 위치를 찾기이를 통해 C++ STL에서 vector, iterator, 반복문을 활용하는 방법을 익힐 수 있습니다.
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
✅ 헤더 파일 설명
#include <iostream> : 콘솔 입출력 (cin, cout)#include <vector> : 동적 배열인 vector 사용#include <cstdlib> : 난수 생성 (rand, srand)#include <ctime> : srand(time(nullptr))을 이용한 난수 초기화main 함수 시작int main()
{
srand(static_cast<unsigned int>(time(nullptr)));
✅ 난수 시드 설정
srand(time(nullptr)) : 현재 시간을 기반으로 난수를 초기화static_cast<unsigned int> : time_t 타입을 unsigned int로 변환vector에 난수 100개 저장 vector<int> v;
for (int i = 0; i < 100; i++)
{
int num = rand() % 100; // 0 ~ 99 난수 생성
v.push_back(num); // 벡터에 추가
}
✅ vector<int> v; → 정수형 vector 선언
✅ rand() % 100 → 0부터 99까지 난수 생성
✅ push_back(num); → 생성된 난수를 벡터에 추가
50) 존재 여부 확인 int number = 50;
bool found = false;
vector<int>::iterator it;
for (int i = 0; i < v.size(); i++)
{
int data = v[i];
if (data == number)
{
found = true;
it = v.begin() + i; // 위치 저장
break;
}
}
✅ 특정 숫자 50이 있는지 확인
bool found = false; → 찾았는지 여부를 저장vector<int>::iterator it; → 찾은 위치 저장if (data == number) → 찾으면 found = true;, 위치 저장 후 종료 found = false;
for (int i = 0; i < v.size(); i++)
{
int data = v[i];
if ((data % 11) == 0) // 11의 배수 확인
{
found = true;
it = v.begin() + i; // 위치 저장
break;
}
}
✅ 11의 배수인지 확인 (data % 11 == 0)
✅ 발견되면 found = true; 및 위치 저장
int count = 0;
for (int i = 0; i < v.size(); i++)
{
if ((v[i] % 2) != 0) // 홀수 확인
{
count++;
}
}
✅ 홀수(data % 2 != 0)인 경우 count 증가
for (int i = 0; i < v.size(); i++)
{
v[i] *= 3; // 각 원소에 3을 곱함
}
✅ 벡터의 모든 요소를 3배 증가
✅ v[i] *= 3; → v[i] = v[i] * 3;