표준 템 플 릿 라 이브 러 리 (STL) 기초
"list" 는 STL 에서 양 방향 링크 입 니 다.
"deque" 는 doubly ended quue 입 니 다. 임의의 한 끝 에서 데 이 터 를 추가 하거나 삭제 할 수 있 습 니 다.
흔히 볼 수 있 는 container 에 value 가 정의 되 어 있 습 니 다.type 과 sizetype。"value type" 은 container 에 저 장 된 데이터 의 형식 입 니 다. 예 를 들 어 list < int >: valuetype 은 int;"size type" 은 unsigned int 이 고 함수 size () 의 반환 값 형식 입 니 다.
iterator 는 container 의 데 이 터 를 방문 할 수 있 는 대상 으로 genealization of pointer 입 니 다. 보통 지침 을 통 해 이 루어 집 니 다. 지침 은 아니 지만.+ + 를 통 해서, --, *, = =,! =등 을 처리 하지만 모든 iterator 가 이 조작 자 를 지원 하 는 것 은 아 닙 니 다.
iterator 는 다음 과 같은 몇 가지 유형 으로 나 눌 수 있 습 니 다.
forward iterator: ++ works
bidirectional iterator: ++, -- works
random access iterator: ++, -- and random access works
그 중에서 각 종 류 는 두 가지 로 나 눌 수 있다. constant 와 mutable 이다.constant 는 읽 기만 하고 가리 키 는 내용 을 수정 할 수 없습니다.mutable 은 수정 할 수 있 습 니 다.container 가 constant iterator 만 있 으 면 이 container 의 mutable iterator 를 얻 을 수 없습니다.container 에 mutable iterator 가 있다 면 이 container 의 constant iterator 를 사용 할 수 있 습 니 다.
std::vector<int> nums(10);
std::vector<int>::iterator it = nums.begin();
// following are all valid
nums[2] = 2; // specialized to vector/array
it[5] = 5; // works for all random access iterator
*(it + 7) = 7; // works for all random access iterator
std::vector<int>::const_iterator p = nums.begin(); // constant iterator
std::vector<int>::reverse_iterator rp; // reverse iterator
for(rp = nums.rbegin(); rp != nums.rend(); rp++)
cout << *rp << " ";
container 를 거꾸로 옮 겨 다 니 려 면 reverse iterator 를 사용 하 십시오. reverse 에 주의 하 십시오.iterator 형식 으로 + 는 뒤에서 이동 합 니 다.
container adapter 는 다른 template class 를 바탕 으로 이 루어 진 template class 입 니 다.예 를 들 어 stack 은 기본적으로 deque 를 통 해 이 루어 지지 만 구체 적 인 실현 디 테 일 은 숨겨 져 있 습 니 다.
adapter template class 는 기본 적 인 container class 를 바탕 으로 하지만 이 기본 적 인 container class 는 다른 container 로 대체 하여 구체 적 인 응용 에 따라 더욱 높 은 효율 을 실현 할 수 있 습 니 다.예 를 들 어, vector 를 stack 의 기초 로 하려 면 다음 과 같이 설명 할 수 있 습 니 다.
stack<int, vector<int> > s; // use vector as the underlying container for stack s
두 ">" 사이 에 빈 칸 이 있어 야 합 니 다.
associative container, 예 를 들 어 set 는 기본적으로 간단 한 데이터베이스 입 니 다.
set 기본 값 은 "<" 를 통 해 배열 되 어 있 습 니 다. 변경 하려 면 다음 과 같이 밝 혀 야 합 니 다.
set<T, ordering> s;
그 중에서 ordering 은 두 개의 인자 가 있어 야 하고 반환 값 은 bool 형의 well - behaved relation 이 어야 합 니 다. strict weak ordering 이 어야 합 니 다.
맵 을 사용 할 때 새로운 입구 가 잘못 생기 지 않도록 주의해 야 한다
map<int, int> hash;
val = hash[key]; // if there is no key in hash, it will be created
。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.