-
✅ Vector 를 사용하여 정수를 저장하는 빈 벡터를 선언해보기.
✅ 사용자로부터 5개의 정수를 입력받아, 벡터에 추가하기.
✅ 벡터의 크기를 출력하기.
✅ 벡터의 모든 원소를 출력하기.
✅ 벡터 내에 있는 원소 중 가장 큰 값을 찾아내기.
✅ 벡터의 모든 원소를 두 배로 곱하여 출력하기.
✅ 인덱스를 입력받고, 해당 인덱스의 원소 제거하기.
✅ 인덱스를 입력받아, 해당 인덱스에 새로운 원소 값을 삽입하기.
[C++] Vector의 기본 개념 사용법, 함수, 이중 Vector 선언 후 배열 :: GG (tistory.com)
위 글에서 벡터 문법을 사용해보는 실습 입니다.
✅ Vector 를 사용하여 정수를 저장하는 빈 벡터를 선언해보기.
vector <int> arr(n);
위의 코드에서는 n으로 작성되었지만, n 대신의 정수 값을 입력하시면 됩니다.
문제에서는 제가 지정한 수인 5 를 입력하여 5개의 정수를 저장할 수 있는 벡터로 선언하였습니다.
n의 값은 사용자에게 입력을 받은 값을 넣을 수도 있습니다.
✅ 사용자로부터 5개의 정수를 입력받아, 벡터에 추가하기.
cout << "\n\n배열을 요소 5개 입력하세요. : "; for (int i = 0; i < 5; i++) { int a = 0; cin >> a; arr[i] = a; }
for문을 통해 벡터의 크기 만큼 사용자에게 반복하여 값을 입력받아,
이를 벡터에 저장할 수 있도록 하였습니다.
✅ 벡터의 크기를 출력하기.
.size(); //v의 길이 반환
vector.size() 함수를 통해 간단하게 벡터의 크기를 알 수 있습니다.
✅ 벡터의 모든 원소를 출력하기.
for (int j = 0; j < 5; j++) { cout << arr[j] << " "; }
1차원 벡터의 경우 한 번의 반복문을 반복함으로 벡터의 요소를 모두 추출할 수 있습니다.
✅ 벡터 내에 있는 원소 중 가장 큰 값을 찾아내기.
#include <algorithm> sort(arr.begin(), arr.end());
max 변수를 선언하여 반복문을 통해 하나씩 비교하여 가장 큰 값을 알아낼 수도 있지만,
알고리즘 헤더를 추가하여 sort를 통해 오름차순으로 정렬하였습니다.
따라서 sort를 통해 정렬된 벡터의 가장 뒤에 있는 원소는 해당 벡터에서 가장 큰 값이 됩니다.
vector.back()
.back() // 백터의 마지막 요소 접근
그 후 마지막 원소에 접근하는 문법으로 마지막 원소를 출력할 수 있도록 하면,
해당 출력 값은 벡터에서 가장 큰 값이 됩니다.
✅ 벡터의 모든 원소를 두 배로 곱하여 출력하기.
for (int i = 0; i < 5; i++) { arr[i] = arr[i] * 2; }
단순히 2배를 하는 요구사항이기에 각각의 벡터를 순환하며, 그 자리의 원소에 해당 원소의 2배의 값을 저장하는 방법을 채택했습니다.
✅ 인덱스를 입력받고, 해당 인덱스의 원소 제거하기.
erase(시작 iterator, 마지막 iterator) // 시작 위치부터 마지막 위치 전까지의 원소를 삭제 v.erase(v.begin() + 1, v.begin() + 3); // 1 ~ 2번 인덱스 삭제
vector.erase() 문법을 통해 사용자에게 입력받은 인덱스의 원소를 제거할 수 있습니다.
다만 하나의 원소를 입력받기에, begin() + index, begin() + index+1 을 사용하면,
해당 위치의 원소만 제거할 수 있습니다.
✅ 인덱스를 입력받아, 해당 인덱스에 새로운 원소 값을 삽입하기.
.insert(v.begin()+index, 원소); // index에 입력된 정수의 위치에 원소를 삽입
vector.insert() 를 통해 index 위치를 지정하고 원소를 삽입할 수 있습니다.
✨체크 포인트
erase 와 insert 모두 선언된 벡터의 크기를 벗어날 수 없습니다.
따라서 해당 크기 보다 높은 수, 혹은 0이나 음수를 입력하게 되면 오류가 발생할 수 있습니다.
해당 실습에서 요구되는 사항들이 잘 출력된 모습입니다.
🎉해당 글의 내용은 "포스코 x 코딩온 스마트 팩토리 과정 수업" 에서의 수업 자료 및 실습 과제 등에서 일부 발췌되어 작성 되었습니다.
'개발 > C++' 카테고리의 다른 글
[C++] list 의 기본 문법과 반복문, list에만 존재하는 함수 실습 (0) 2023.09.05 [C++] Vector 복습. 2차원 배열에서 행과 열의 합을 구하기. (0) 2023.09.05 [C++] namespace의 개념과 간단한 실습 (0) 2023.09.04 [C++] vector 의 중복 요소 삭제 실습. (0) 2023.09.04 [C++] Vector의 기본 개념 사용법, 함수, 이중 Vector 선언 후 배열 (0) 2023.09.04 댓글 (비로그인 댓글 허용하지 않습니다.)