stl 컨테이너(vs 2019)
/* 5.프로젝트 실전 회고 수요: 프로그래머 잭의 팀은 밑바닥 프로젝트를 새로 인수했다. 프로젝트 매니저는 잭에게 유니버설 용기를 실현하고 다양한 일반 유형(int char float double 등 포함)과 사용자 정의 구조체와 사용자 정의 클래스의 대상을 삽입할 수 있으며 각 유형의 비교 규칙에 따라 용기에서 가장 크거나 가장 작은 값이나 대상을 얻을 수 있도록 지원할 수 있다.
통용 용기 분석 - 자체 개발 or STL 기존 용기 재사용?다양한 유형 삽입 지원 - 템플릿이 아닌 최대 최소값 - 함수 대상 (모방 함수)?or set/multiset
인터페이스 설계 - sizeFilter 구조 함수 대입 연산자 재부팅 크기 삽입 및 삭제 찾기 최대값 및 최소값 찾기
*/
#pragma once//demo 15_43 #ifndef SIZEFILTER #define SIZEFILTER
#include #include
template class _Container = set<_ty>> class sizeFilter { public: typedef sizeFilter<_ty _container=""> _Myt; typedef typename _Container::size_type size_type; typedef typename _Container::value_type value_type;
sizeFilter() : c() {
// ,
}
sizeFilter(const _Myt& _Right) : c(_Right.c) {
// , sizeFilter
}
sizeFilter(const _Container& _Cont) : c(_Cont) {
// ,
}
_Myt& operator=(const _Myt& _Right) { // A=B=C=D
// sizeFilter
c = _Right.c;
return (*this);
}
bool empty() const {
// SizeFilter
return (c.empty());
}
size_type size() const {
// SizeFilter
return (c.size());
}
bool insert(const value_type& _Val) {
//
/*pair<:iterator bool=""> ret = c.insert(_Val);
if(ret.second){
std::cout< 0) {
return true;
}
return false;
}
std::pair getMin() {
//
std::pair ret;
typename _Container::iterator min = c.begin();
if (min != c.end()) {//
ret.first = *min;
ret.second = true;
return ret;
}
ret.second = false;
return ret;
}
std::pair getMax() {
//
std::pair ret;
typename _Container::iterator end = c.end();
if (c.size() > 0) {
ret.first = *(--end);
ret.second = true;
}
else {
ret.second = false;
}
return ret;
}
protected:
_Container c;
};
#endif
#include #include
using namespace std;
int main() { std::cout << “Hello World!”; sizeFilter sf;
for (int i = 0; i < 10; i++)
{
sf.insert(i * 5);
}
sf.erase(0);
sf.erase(5);
cout << " " << endl;
//
std::pair pb1 = sf.getMax(); if (pb1.second) { cout << “max:” << pb1.first << endl; } else { cout << “Not found” << endl; }
//
std::pairpb2 = sf.getMin();
if (pb2.second)
{
cout << "min:" << pb2.first << endl;
}
}
//실행자: Ctrl + F5 또는 디버깅 > 실행 시작 (디버깅하지 않음) 메뉴//디버깅자: F5 또는 디버깅 > 디버깅 시작 메뉴
//입문 사용 기교://1.솔루션 리소스 매니저 창을 사용하여 파일 추가/관리//2.팀 자원 관리자 창을 사용하여 원본 코드 관리에 연결//3.출력 창을 사용하여 출력 및 기타 메시지 생성 보기//4.오류 목록 창을 사용하여 오류 보기//5.[프로젝트] > [새 항목 추가]로 이동하여 새 코드 파일을 만들거나 [프로젝트] > [기존 항목 추가]로 이동하여 기존 코드 파일을 프로젝트에 추가//6.나중에 이 항목을 다시 열려면 [파일] > [열기] > [프로젝트]로 이동하여 선택합니다.sln 파일
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.