Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: clear

From cppreference.net
std::basic_string
void clear ( ) ;
(noexcept C++11부터)
(constexpr C++20부터)

문자열에서 모든 문자를 제거합니다. 마치 erase ( begin ( ) , end ( ) ) 를 실행하는 것과 같습니다.

모든 포인터, 참조자 및 반복자는 무효화됩니다.

목차

매개변수

(없음)

반환값

(없음)

참고 사항

std::vector::clear 와 달리, C++ 표준은 이 함수에 의해 capacity 가 변경되지 않을 것을 명시적으로 요구하지 않지만, 기존 구현들은 capacity를 변경하지 않습니다. 이는 할당된 메모리를 해제하지 않는다는 것을 의미합니다 (참조: shrink_to_fit ).

복잡도

문자열의 크기에 선형적으로 비례하지만, 기존 구현체들은 상수 시간에 동작합니다.

예제

#include <cassert>
#include <iostream>
#include <string>
int main()
{
    std::string s{"Exemplar"};
    std::string::size_type const capacity = s.capacity();
    s.clear();
    assert(s.empty());
    assert(s.size() == 0);
    std::cout << std::boolalpha << (s.capacity() == capacity) << '\n';
}

가능한 출력:

true

참고 항목

문자를 제거합니다
(public member function)