0. 사전 준비
0~99의 숫자를 랜덤하게 뽑아 어떤 변수에 저장하고 그 변수의 값을 동적 배열에 하나씩 밀어넣는다.
#include <iostream>
#include <vector>
#include <list>
#include <deque>
#include <map>
#include <set>
using namespace std;
int main()
{
srand(static_cast<unsigned int>(time(nullptr)));
vector<int> v;
int count = 0;
bool found = false;
for (int i = 0; i < 100; i++)
{
int num = rand() % 100; //0~99까지 100개의 숫자 중 하나 랜덤 저장
v.push_back(num);
}
Q.1) 어떤 숫자(number)가 벡터에 있는지 찾기(bool과 iterator 위치 반환)
{
int number = 50;
vector<int>::iterator it = v.end();
for(int i = 0; i < v.size(); i++)
{
if (v[i] == number)
{
found = true;
it = v.begin() + i;
cout << "found";
break;
}
}
}
주의) 반복자의 위치도 그 숫자의 위치를 가르켜야 하기 때문에 처음에 벡터의 끝으로 지정해두고 i값의 증가에 따라서 반복자의 위치도 하나씩 증가하게 한다.
Q.2) 11로 나누어 떨어지는 숫자가 벡터에 있는지 찾기(bool과 iterator 위치 반환)
{
vector<int>::iterator it = v.end();
for(int i = 0; i < v.size(); i++)
{
int data = v[i];
int div = data % 11;
if (div == 0)
{
found = true;
it = v.begin() + i;
break;
}
}
}
Q.3) 벡터 내에 홀수인 요소가 몇 개 있는가
{
vector<int>::iterator it = v.end();
int data = 0;
for (int i = 0; i < v.size(); i++)
{
data = v[i];
bool odd = data % 2; // 홀수면 true를 반환
if(odd)
count++;
}
}
cout << "홀수는 " << count << "개 있습니다.";
불리언 odd는 나눗셈 결과의 나머지를 저장하는데, 2로 나누었기 때문에 결과가 0 아니면 1이다.
이 때 2로 나눈 나머지가 1이면 홀수라는 의미이므로 odd가 홀수라면 1을 반환하게 된다.
Q.4) 벡터 안의 모든 요소에 3을 곱하기
for (int i = 0; i < v.size(); i++)
{
int temp = 0;
temp = v[i] * 3;
v[i] = temp;
}
'기초 C++ 스터디 > 예제' 카테고리의 다른 글
9-5. STL - List 구현하기(실습) (0) | 2023.06.14 |
---|---|
9-3. STL - Vector 구현하기 (실습) (0) | 2023.06.14 |
7-3. 디버깅 예제 #8 ~ 10 (0) | 2023.06.07 |
7-2. 디버깅 예제 #5 ~ 7 (0) | 2023.06.07 |
7-1. 디버깅 예제 #1 ~ 4 (0) | 2023.06.07 |