반응형
출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션)
배열 vs Vector 차이점 비교
Vector 클래스의 주요 멤버와 연산자
Vector를 이용한 예제
1. vector 컨테이너 활용 예제
#include<iostream>
#include<vector>
using namespace std;
void main() {
vector<int>v;
//정수만 삽입 가능한 벡터 생성
v.push_back(1);//벡터에 정수1 삽입
v.push_back(2);//벡터에 정수2 삽입
v.push_back(3);//벡터에 정수3 삽입
for (int i = 0; i < v.size(); i++) {
cout << v[i] << endl;
}
cout << endl;
v[0] = 10;//벡터의 첫 번재 원소를 10으로 변경
int n = v[2];//n은 3
v.at(2) = 5;//벡터의 3번째 원소를 5로 변경
for (int i = 0; i < v.size(); i++) {
cout << v[i] << endl;
}
cout << endl;
}
2. 문자열을 저장하는 벡터 예제
#include<iostream>
#include<vector>
#include<string>
using namespace std;
void main() {
vector<string>sv;//문자열 벡터 생성
string name;
cout << "이름 5개를 입력하시오" << endl;
for (int i = 0; i < 5; i++) {
//한줄에 한개씩 5개의 이름을 입력받는다.
cout << i + 1 << ">>";
getline(cin, name);
sv.push_back(name);
}
name = sv.at(0);//벡터의 첫 원소
for (int i = 1; i < sv.size(); i++) {
if (name < sv[i])//name이 sv[i]보다 앞에 나온다면
name = sv[i];//변경!
}
cout << "사전에서 가장 뒤에 나오는 이름은" << name << endl;
}
iterator
▶ iterator은 반복자라고도 불린다. 컨테이너의 원소를 가리키는 포인터이고 구체적인 컨테이너를 지정하여 반복자 변수를 생성한다.
#include<iostream>
#include<vector>
using namespace std;
void main() {
vector<int>v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
vector<int>::iterator it;
for (it = v.begin(); it != v.end(); it++) {
//iterato를 이용하여 모든 원소 탐색
int n = *it;//it가 가리키는 원소 값을 return
n = n * 2;//2를 곱함
*it = n;//it가 기리키는 원소에 값 쓰기
}
for (it = v.begin(); it != v.end(); it++) {
cout << *it << endl;
}
cout << endl;
}
sort Algorithm
#include<iostream>
#include<vector>
#include<algorithm>//sort함수 헤더함수
using namespace std;
void main() {
vector<int>v;
cout << "5개의 정수를 입력하시오" << endl;
for (int i = 0; i < 5; i++) {
int n;
cin >> n;
v.push_back(n);//입력한 정수를 벡터에 삽입
}
sort(v.begin(), v.end());
vector<int>::iterator it;
//벡터 내 원소를 탐색하는 포인터 변수 iterator 선언
for (it = v.begin(); it != v.end(); it++) {
cout << *it ;
}
cout << endl;
}
728x90
반응형
'💻 개인공부 💻 > C | C++' 카테고리의 다른 글
[C++] 조건문 (feat. if 문과 switch 문) (0) | 2020.06.17 |
---|---|
[C++] 포맷 플래그 (0) | 2020.06.12 |
[C++] C++에서의 배열 선언 (0) | 2020.06.08 |
[C++] 가상함수 상속을 이용하여 값을 변환해주는 클래스 작성 (0) | 2020.05.24 |
[C++] 다중상속을 이용한 연산 프로그램(feat. public 다중상속) (0) | 2020.05.20 |