기술나눔

STL 검토-직렬 컨테이너 및 컨테이너 어댑터 부분

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

STL 검토

1. 일반용기

공통 인터페이스, 반복자 유형 및 기본 구현에서 이러한 컨테이너를 도입하는 방법

여기에 이미지 설명을 삽입하세요.


시퀀스 컨테이너

엄밀히 말하면 string은 stl에 속하지 않고 C 표준 라이브러리에 속합니다.

**기본 구현: **String은 본질적으로 char 유형의 시퀀스 테이블입니다. 다양한 컴파일러에서의 구체적인 구현이 다르기 때문에 여기서는 짧은 답변 프레임워크만 제공합니다.

class string
{
public:
    typedef char* iterator;
    typedef const char* const_iterator; 
private:
    char* _str; 		// 堆上开辟的顺序表空间
    size_t _size; 		// 有效字符个数
    size_t _capacity; 	// _str的空间大小

    static const size_t npos; // 最大字符串大小
};

const size_t string::npos = -1;

실제로 VS 시리즈에서는 문자열에 포인터와 공용체(배열과 포인터)가 포함되어 있습니다. 문자열의 길이가 16바이트 미만인 경우에는 미리 열려 있는 배열이 16바이트보다 큰 경우 사용됩니다. 바이트, 공간이 힙에 적용되고 포인터가 사용됩니다.), 크기 및 용량.

g에서 문자열에는 문자열, 참조 횟수, 크기 및 용량에 대해 열린 공간을 가리키는 포인터를 포함하여 힙의 공간을 가리키는 포인터만 포함됩니다. 이 참조 횟수를 사용하면 이러한 개체를 할당하고 복사할 때 참조 카운트를 늘리기 위한 얕은 복사본입니다.

반복자 유형: 무작위 액세스 반복자

일반적으로 사용되는 인터페이스:

기능 이름기능
사이즈 / 길이문자열의 유효한 문자 수를 반환합니다.
지우기 / 예약하기 / 크기 조절하기유효한 문자를 지우고/공간을 예약하고/유효한 문자 수를 n으로 줄이고, 추가 공간을 문자 c로 채웁니다.
운영자[]pos 위치의 문자를 반환합니다.
푸시백 / 추가 / 연산자 =문자열 끝에 문자 c/문자열/문자열 삽입
c_strC 형식 문자열을 반환합니다.
찾기 / rfind npos문자열의 pos 위치에서 시작하여 (뒤로/앞으로) 문자 c를 찾고, npos가 반환되지 않은 문자의 위치를 ​​반환합니다.
삭제str의 pos 위치에서 시작하여 n자를 가로채서 반환합니다.
운영자