내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
STL 검토
공통 인터페이스, 반복자 유형 및 기본 구현에서 이러한 컨테이너를 도입하는 방법
엄밀히 말하면 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_str | C 형식 문자열을 반환합니다. |
찾기 / rfind npos | 문자열의 pos 위치에서 시작하여 (뒤로/앞으로) 문자 c를 찾고, npos가 반환되지 않은 문자의 위치를 반환합니다. |
삭제 | str의 pos 위치에서 시작하여 n자를 가로채서 반환합니다. |
운영자 |