#21 [c++] STL 알고리즘, auto

정상준·2022년 11월 26일
0

c++

목록 보기
17/25

📝 STL 알고리즘

  • 알고리즘 함수
    • 템플릿 함수
    • 전역 함수
      • STL컨테이너 클래스의 멤버 함수가 아님
    • iterator와 함께 작동
  • sort() 함수 사례
    • 두 개의 매개 변수
      • 첫 번째 매개 변수 : 정렬을 시작한 원소의 주소
      • 두 번째 매개 변수 : 정렬 범위의 마지막 원소 다음 주소
      • 세 번째 매개 변수 : 오름차순 내림차순 사용자 정의
#include <iostream>
#include<vector>
#include<algorithm>

using namespace std;

/*
5개의 정수를 입력하세요>>30 20 10 50 40
10
20
30
40
50
*/


int main() {
	vector<int> v;
	cout << "5개의 정수를 입력하세요>>";

	for (int i = 0; i < 5; i++) {
		int n;
		cin >> n;
		v.push_back(n);
	}

	sort(v.begin(), v.end());
	vector<int>::iterator it;
	for (it = v.begin(); it < v.end(); it++) {
		cout << *it << endl;
	}
}

📝 auto

  • auto
    • 컴파일러에서 변수의 타입을 추측하여 자동으로 선언함
  • 선언
    • auto a = 1.23;
      • 실수임으로 a는 double타입으로 선언됨
    • auto b = 123;
      • 정수임으로 b는 int타입으로 선언됨
    • auto *c = &b;
      • c는 int 주소를 저장하는 int* 타입으로 선언됨
#include <iostream>
#include<vector>

using namespace std;

/*
a 3.14 1 1
1 2 3 4 5
*/


int main() {
	auto c = 'a';
	auto pi = 3.14;
	auto one = 1;
	auto* p = &one;

	cout << c << " " << pi << " " << one << " " << *p << endl;

	vector<int> vec = { 1,2,3,4,5 };
	for (auto iter = vec.begin(); iter < vec.end() ; iter++) {
		cout << *iter << " ";
	}
}
profile
안드로이드개발자

0개의 댓글