C++ Programming

C++ 제네릭 템플릿 클래스

psy_er 2021. 12. 14. 02:14
728x90

C++ 제네릭 템플릿 클래스

 

<제네릭, 템플릿 클래스>

 

제네릭 : 자료형의 일반화, 오버라이딩과 함께 구현시, 오버라이딩의 우선순위가 더 높다.

템플릿 : 제네릭 타입을 이용해 함수나 클래스를 일반화 한것이다.

 

template <class T1, class T2>
void Swap(T1 & a, T2 & b); // 메인함수 전에도 템플릿 클래스 명시
int main(){}
template <class T1, class T2>
void Swap(T1 & a, T2 & b){
   T tmp;
   tmp = a;
   a = b;
   b= tmp;
   }

 

<vector>

 

벡터 선언 vector<int> v;

벡터 요소 추가 v.push_back(1);

벡터 유효 크기 반환 int s = v.size();

벡터 할당 크기 반환 int c = v.capacity();

 

벡터 인덱스 추가 v.at(2) = 5;

벡터 값 반환 int n = v.at(1);

벡터 인덱스 값 바꾸기 v[0] = 10;

벡터 인덱스 값 반환 int m = v[2];

 

#include <string>
#incldue <vector>
using namespace std;

int main(){
   vector<string> sv;
   string name;
   cout << "이름을 5개 입력해라" << endl;
   for(int i=0; i<5; i++){
      cout<< k+1 << " : ";
      getline(cin,name);
   }
   
   name = sv.at(0);
   for(int i=0 ; i<sv.size(); i++){
      if(name<sv.[i]) // sv[i]의 문자열이 name 보다 사전에서 뒤에 위치할때
         name = sv.[i]; 
   }
   cout << "사전에서 가장 뒤에 나오는 이름은 : "<< name;
728x90