다음을 통해 공유


basic_string_view 클래스

클래스 템플릿 basic_string_view<charT> 은 C++17에 추가되어 함수가 해당 형식에 대해 템플릿을 작성하지 않고도 관련 없는 다양한 문자열 형식을 허용하는 안전하고 효율적인 방법으로 사용되었습니다. 클래스는 연속된 문자 데이터 시퀀스에 대한 소유가 아닌 포인터와 시퀀스의 문자 수를 지정하는 길이를 포함합니다. 시퀀스가 null로 종료되는지 여부에 대한 가정은 없습니다.

표준 라이브러리는 요소의 형식에 따라 몇 가지 특수화를 정의합니다.

  • string_view
  • wstring_view
  • u16string_view
  • u32string_view

A basic_string_view 는 문자열 데이터를 읽는 데 필요한 최소 공통 인터페이스를 설명합니다. 기본 데이터에 대한 const 액세스를 제공합니다. 함수를 제외하고 복사본을 copy 만들지 않습니다. 데이터에는 어떤 위치에서든 null 값(\0)이 포함될 수도 있거나 포함되지 않을 수도 있습니다. A basic_string_view 는 개체의 수명을 제어할 수 없습니다. 기본 문자열 데이터가 유효한지 확인하는 것은 호출자의 책임입니다.

형식 string_view 의 매개 변수를 허용하는 함수는 함수를 템플릿으로 만들거나 함수를 특정 문자열 형식 하위 집합으로 제한하지 않고 문자열과 유사한 형식으로 작동하도록 만들 수 있습니다. 유일한 요구 사항은 문자열 형식에서 .로 암시적 변환이 존재한다는 것입니다 string_view. 모든 표준 문자열 형식은 동일한 요소 형식을 포함하는 형식으로 string_view 암시적으로 변환할 수 있습니다. 즉, a는 a std::string 로 변환할 수 있지만 a string_view 로 변환할 수는 wstring_view없습니다.

다음 예제에서는 형식wstring_view의 매개 변수를 사용하는 비 템플릿 함수 f 를 보여줍니다. 형식 std::wstringwchar_t*winrt::hstring및 .의 인수를 사용하여 호출할 수 있습니다.

// compile with: /std:c++17
// string_view that uses elements of wchar_t
void f(wstring_view);

// pass a std::wstring:
const std::wstring& s { L"Hello" };
f(s);

// pass a C-style null-terminated string (string_view is not null-terminated):
const wchar_t* ns = L"Hello";
f(ns);

// pass a C-style character array of len characters (excluding null terminator):
const wchar_t* cs { L"Hello" };
size_t len { 5 };
f({cs,len});

// pass a WinRT string
winrt::hstring hs { L"Hello" };
f(hs);

구문

template <class CharType, class Traits = char_traits<CharType>>
class basic_string_view;

매개 변수

CharType
에 저장된 basic_string_view문자의 형식입니다. C++ 표준 라이브러리는 이 템플릿의 특수화에 대해 다음과 같은 typedefs를 제공합니다.

Traits
기본값은 char_traits<CharType>입니다.

생성자

생성자 Description
basic_string_view basic_string_view 비어 있거나 다른 문자열 개체의 데이터 전체 또는 일부를 가리키거나 C 스타일 문자 배열을 가리키는 구문입니다.

Typedef

형식 이름 설명
const_iterator 요소를 읽을 const 수 있는 임의 액세스 반복기입니다.
const_pointer using const_pointer = const value_type*;
const_reference using const_reference = const value_type&;
const_reverse_iterator using const_reverse_iterator = std::reverse_iterator<const_iterator>;
difference_type using difference_type = ptrdiff_t;
iterator using iterator = const_iterator;
npos static constexpr size_type npos = size_type(-1);
pointer using pointer = value_type*;
reference using reference = value_type&;
reverse_iterator using reverse_iterator = const_reverse_iterator;
size_type using size_type = size_t;
traits_type using traits_type = Traits;
value_type using value_type = CharType;

멤버 연산자

Operator 설명
operator= 다른 basic_string_view문자열 개체에 또는 변환 가능한 문자열 개체를 할당합니다basic_string_view.
operator[] 지정한 인덱스의 요소를 반환합니다.

멤버 함수

멤버 함수 설명
at const_reference 지정된 위치에 있는 요소에 대한 값을 반환합니다.
back 마지막 요소에 대한 값을 const_reference 반환합니다.
begin 첫 번째 요소의 const 주소를 지정하는 반복기를 반환합니다. (basic_string_view변경할 수 없습니다.)
cbegin begin와 동일합니다.
cend const 마지막 요소를 지나서 하나를 가리키는 반복기를 반환합니다.
copy 원본 basic_string_view 의 인덱싱된 위치에서 대상 문자 배열로 지정된 개수의 문자를 복사합니다. (권장되지 않습니다. 대신 사용합니다 _Copy_s .)
_Copy_s 보안 CRT 복사 함수입니다.
compare basic_string_view 지정된 basic_string_view 항목과 비교하여 같음인지 또는 다른 항목보다 사전적으로 작은지 여부를 확인합니다.
crbegin rbegin와 동일합니다.
crend rend와 동일합니다.
data 문자 시퀀스에 대한 원시 비 소유 포인터를 반환합니다.
empty 문자가 basic_string_view 포함되어 있는지 여부를 테스트합니다.
end cend와 동일합니다.
ends_withC++20 문자열 뷰가 지정된 접미사로 끝나는지 확인합니다.
find 지정된 문자 시퀀스에 일치하는 부분 문자열의 첫 번째 발생을 정방향으로 검색합니다.
find_first_not_of 지정 basic_string_view 되거나 변환 가능한 문자열 개체의 요소가 아닌 첫 번째 문자를 검색합니다.
find_first_of 지정 basic_string_view 하거나 변환 가능한 문자열 개체의 요소와 일치하는 첫 번째 문자를 검색합니다.
find_last_not_of 지정 basic_string_view 되거나 변환 가능한 문자열 개체의 요소가 아닌 마지막 문자를 검색합니다.
find_last_of 지정 basic_string_view 되거나 변환 가능한 문자열 개체의 요소인 마지막 문자를 검색합니다.
front 첫 번째 요소에 대한 값을 const_reference 반환합니다.
length 현재 요소 수를 반환합니다.
max_size 포함할 수 있는 basic_string_view 최대 문자 수를 반환합니다.
rbegin 역방향basic_string_viewconst 첫 번째 요소에 주소를 지정하는 반복기를 반환합니다.
remove_prefix 포인터를 지정된 요소 수만큼 앞으로 이동합니다.
remove_suffix 뷰의 크기를 뒤에서 시작하는 지정된 요소 수만큼 줄입니다.
rend 역방향basic_string_viewconst 마지막 요소 중 하나를 가리키는 반복기를 반환합니다.
rfind basic_string_view 지정된 문자 시퀀스에 일치하는 부분 문자열의 첫 번째 발생을 역방향으로 검색합니다.
size 현재 요소 수를 반환합니다.
starts_withC++20 문자열 뷰가 지정된 접두사로 시작하는지 확인합니다.
substr 지정된 인덱스에서 시작하는 지정된 길이의 부분 문자열을 반환합니다.
swap basic_string_view 개체의 내용을 교환합니다.

설명

함수가 요소보다 max_size 긴 시퀀스를 생성하라는 메시지가 표시되면 형식 length_error의 개체를 throw하여 길이 오류를 보고합니다.

요구 사항

std:c++17 이상.

머리글: <string_view>

네임스페이스: std

basic_string_view::at

const_reference 지정된 인덱스(0부터 시작하는 인덱스)의 문자에 대한 값을 반환합니다.

constexpr const_reference at(size_type offset) const;

매개 변수

offset
참조할 요소의 인덱스입니다.

반환 값

const_reference 매개 변수 인덱스로 지정된 위치에 있는 문자에 대한 A입니다.

설명

첫 번째 요소의 인덱스는 0이고 다음 요소는 양의 정수에 의해 연속적으로 인덱싱되므로 basic_string_view 길이 n 에 숫자로 인덱싱된 n - 1*n*th 요소가 있습니다. at 는 와 달리 operator[]잘못된 인덱스에 대한 예외를 throw합니다.

일반적으로 at 이러한 시퀀스의 std::vector basic_string_view 경우 사용해서는 안 됩니다. 시퀀스에 전달된 잘못된 인덱스는 개발 중에 검색되고 수정되어야 하는 논리 오류입니다. 프로그램이 인덱스가 유효한지 확실하지 않은 경우 부주의한 프로그래밍을 방어하기 위해 예외를 호출 at() 하지 않고 테스트해야 합니다.

자세한 내용은 basic_string_view::operator[]를 참조하세요.

예시

// basic_string_view_at.cpp
// compile with: /EHsc
#include <string_view>
#include <iostream>

int main()
{
    using namespace std;

    const string_view  str1("Hello world");
    string_view::const_reference refStr2 = str1.at(8); // 'r'
}

basic_string_view::back

마지막 요소에 대한 값을 const_reference 반환합니다.

constexpr const_reference back() const;

반환 값

의 마지막 요소에 대한 basic_string_viewA const_reference 입니다.

설명

비어 있으면 예외를 basic_string_view throw합니다.

예를 들어 호출remove_suffix을 통해 수정된 후에 basic_string_view 는 이 함수에서 반환된 요소가 더 이상 기본 데이터의 마지막 요소가 아닙니다.

예시

C 문자열 리터럴로 생성된 A string_view 는 종료 null을 포함하지 않습니다. 따라서 다음 예제 back 에서는 반환하지 않고 '\0'반환 'p' 합니다.

char c[] = "Help"; // char[5]
string_view sv{ c };
cout << sv.size(); // size() == 4
cout << sv.back() << endl; // p

포함된 null은 다른 문자로 처리됩니다.

string_view e = "embedded\0nulls"sv;
cout << boolalpha << (e.back() == 's'); // true

basic_string_view::basic_string_view

basic_string_view를 생성합니다.

constexpr basic_string_view() noexcept;
constexpr basic_string_view(const basic_string_view&) noexcept = default;
constexpr basic_string_view(const charT* str);
constexpr basic_string_view(const charT* str, size_type len);

매개 변수

str
문자 값에 대한 포인터입니다.

len
보기에 포함할 문자 수입니다.

설명

매개 변수가 있는 charT* 생성자는 입력이 null로 종료되지만 종료 null은 에 포함되지 basic_string_view않는다고 가정합니다.

리터럴을 사용하여 생성할 basic_string_view 수도 있습니다. operator"" sv을 참조하세요.

basic_string_view::begin

cbegin와 동일합니다.

constexpr const_iterator begin() const noexcept;

반환 값

첫 번째 요소의 const_iterator 주소 지정을 반환합니다.

basic_string_view::cbegin

범위의 const_iterator 첫 번째 요소에 주소를 지정하는 값을 반환합니다.

constexpr const_iterator cbegin() const noexcept;

반환 값

범위의 첫 번째 요소 또는 빈 범위의 끝 바로 다음 위치를 가리키는 const 임의 액세스 반복기입니다(빈 범위의 경우 cbegin() == cend()).

basic_string_view::cend

범위의 const_iterator 마지막 요소 바로 다음 위치에 주소를 지정하는 값을 반환합니다.

constexpr const_iterator cend() const noexcept;

반환 값

범위 끝의 바로 다음을 가리키는 const 임의 액세스 반복기입니다.

설명

반환된 cend 값은 역참조하면 안 됩니다.

basic_string_view::compare

지정된 basic_string_view (또는 변환 가능한 문자열 형식)와 대/소문자를 구분하여 두 개체가 같은지 아니면 다른 개체보다 사전적으로 작은지 확인합니다. 연산자는 <string_view> 이 멤버 함수를 사용하여 비교를 수행합니다.

constexpr int compare(basic_string_view strv) const noexcept;
constexpr int compare(size_type pos, size_type num, basic_string_view strv) const;
constexpr int compare(size_type pos, size_type num, basic_string_view strv, size_type offset, size_type num2) const;
constexpr int compare(const charT* ptr) const;
constexpr int compare(size_type pos, size_type num, const charT* ptr) const;
constexpr int compare(size_type pos, size_type num, const charT* ptr, size_type num2) const;

매개 변수

strv
basic_string_view 값과 비교할 수 있습니다 basic_string_view.

pos
비교가 시작되는 인 basic_string_view 덱스입니다.

num
비교할 최대 문자 basic_string_view 수입니다.

num2
비교할 최대 문자 strv 수입니다.

offset
비교가 시작되는 인덱 strv 스입니다.

ptr
basic_string_view문자열과 비교할 C 문자열입니다.

반환 값

  • 음수 값(이 basic_string_view 값이 보다 strv 작거나 낮으면)입니다. ptr
  • 두 문자 시퀀스가 같으면 0
  • 양수 값(이 basic_string_view 값이 보다 strv 크거나 ptr

설명

멤버 함수는 compare 각 문자 시퀀스의 전체 또는 일부를 대/소문자를 구분하여 비교합니다.

예시

// basic_string_view_compare.cpp
// compile with: /EHsc
#include <string_view>
#include <iostream>
#include <string>

using namespace std;

string to_alpha(int result)
{
   if (result < 0) return " less than ";
   else if (result == 0) return " equal to ";
   else return " greater than ";
}

int main()
{
   // The first member function compares
   // two string_views
   string_view sv_A("CAB");
   string_view sv_B("CAB");
   cout << "sv_A is " << sv_A << endl;
   cout << "sv_B is " << sv_B << endl;
   int comp1 = sv_A.compare(sv_B);
   cout << "sv_A is" << to_alpha(comp1) << "sv_B.\n";

   // The second member function compares part of
   // an operand string_view to another string_view
   string_view sv_C("AACAB");
   string_view sv_D("CAB");
   cout << "sv_C is: " << sv_C << endl;
   cout << "sv_D is: " << sv_D << endl;
   int comp2a = sv_C.compare(2, 3, sv_D);
   cout << "The last three characters of sv_C are"
       << to_alpha(comp2a) << "sv_D.\n";

   int comp2b = sv_C.compare(0, 3, sv_D);
   cout << "The first three characters of sv_C are"
       << to_alpha(comp2b) << "sv_D.\n";

   // The third member function compares part of
   // an operand string_view to part of another string_view
   string_view sv_E("AACAB");
   string_view sv_F("DCABD");
   cout << "sv_E: " << sv_E << endl;
   cout << "sv_F is: " << sv_F << endl;
   int comp3a = sv_E.compare(2, 3, sv_F, 1, 3);
   cout << "The three characters from position 2 of sv_E are"
       << to_alpha(comp3a)
       << "the 3 characters of sv_F from position 1.\n";

   // The fourth member function compares
   // an operand string_view to a C string
   string_view sv_G("ABC");
   const char* cs_A = "DEF";
   cout << "sv_G is: " << sv_G << endl;
   cout << "cs_A is: " << cs_A << endl;
   int comp4a = sv_G.compare(cs_A);
   cout << "sv_G is" << to_alpha(comp4a) << "cs_A.\n";

   // The fifth member function compares part of
   // an operand string_view to a C string
   string_view sv_H("AACAB");
   const char* cs_B = "CAB";
   cout << "sv_H is: " << sv_H << endl;
   cout << "cs_B is: " << cs_B << endl;
   int comp5a = sv_H.compare(2, 3, cs_B);
   cout << "The last three characters of sv_H are"
      << to_alpha(comp5a) << "cs_B.\n";

   // The sixth member function compares part of
   // an operand string_view to part of an equal length of
   // a C string
   string_view sv_I("AACAB");
   const char* cs_C = "ACAB";
   cout << "sv_I is: " << sv_I << endl;
   cout << "cs_C: " << cs_C << endl;
   int comp6a = sv_I.compare(1, 3, cs_C, 3);
   cout << "The 3 characters from position 1 of sv_I are"
      << to_alpha(comp6a) << "the first 3 characters of cs_C.\n";
}
sv_A is CAB
sv_B is CAB
sv_A is equal to sv_B.
sv_C is: AACAB
sv_D is: CAB
The last three characters of sv_C are equal to sv_D.
The first three characters of sv_C are less than sv_D.
sv_E: AACAB
sv_F is: DCABD
The three characters from position 2 of sv_E are equal to the 3 characters of sv_F from position 1.
sv_G is: ABC
cs_A is: DEF
sv_G is less than cs_A.
sv_H is: AACAB
cs_B is: CAB
The last three characters of sv_H are equal to cs_B.
sv_I is: AACAB
cs_C: ACAB
The 3 characters from position 1 of sv_I are equal to the first 3 characters of cs_C.

basic_string_view::copy

원본 basic_string_view 의 인덱싱된 위치에서 대상 문자 배열로 지정된 개수의 문자를 복사합니다. 대신 보안 함수 basic_string_view::_Copy_s 를 사용하는 것이 좋습니다.

size_type copy(charT* ptr, size_type count, size_type offset = 0) const;

매개 변수

ptr
요소를 복사할 대상 문자 배열입니다.

count
원본 basic_string_view에서 복사할 문자 수입니다.

offset
복사본을 만들 원본 basic_string_view 의 시작 위치입니다.

반환 값

복사된 문자 수입니다.

설명

null 문자는 복사본의 끝에 추가되지 않습니다.

basic_string_view::_Copy_s

대신 copy사용할 보안 CRT 복사 함수

size_type _Copy_s(
    value_type* dest,
    size_type dest_size,
    size_type count,
    size_type _Off = 0) const;

매개 변수

dest
요소를 복사할 대상 문자 배열입니다.

dest_size
dest의 크기입니다.

count 원본 문자열에서 복사할 문자 수입니다.

_Off
복사본을 만들 원본 문자열의 시작 위치입니다.

반환 값

복사된 문자 수입니다.

설명

null 문자는 복사본의 끝에 추가되지 않습니다.

자세한 내용은 c-runtime-library/security-features-in-the-crt를 참조 하세요.

basic_string_view::crbegin

역방향basic_string_viewconst_reverse_iterator 첫 번째 요소에 주소를 지정하는 값을 반환합니다.

constexpr const_reverse_iterator crbegin() const noexcept;

반환 값

const_reverse_iterator 역방향basic_string_view의 첫 번째 요소를 해결하는 A입니다.

basic_string_view::crend

rend와 동일합니다.

constexpr const_reverse_iterator crend() const noexcept;

반환 값

const_reverse_iterator 역방향basic_string_view의 끝을 지나서 주소를 지정하는 값을 반환합니다.

basic_string_view::data

를 생성하는 데 사용된 개체의 const 문자 시퀀스에 대한 원시 비 소유 포인터를 basic_string_view반환합니다.

constexpr value_type *data() const noexcept;

반환 값

문자 시퀀스의 첫 번째 요소에 대한 포인터 대 콘스트입니다.

설명

포인터는 문자를 수정할 수 없습니다.

문자 시 basic_string_view 퀀스가 반드시 null로 끝나는 것은 아닙니다. null 문자가 추가되지 않으므로 반환 형식 data 이 유효한 C 문자열이 아닙니다. null 문자 \0 는 형식 basic_string_view 의 개체에 특별한 의미가 없으며 다른 문자와 마찬가지로 개체의 basic_string_view 일부일 수 있습니다.

basic_string_view::empty

문자가 포함되어 있는지 여부를 basic_string_view 테스트합니다.

constexpr bool empty() const noexcept;

반환 값

true 개체에 문자가 basic_string_view 없으면 이고, false 문자가 하나 이상 있으면 입니다.

설명

멤버 함수는 () == 0과 동일합니다 size.

basic_string_view::end

마지막 요소를 지나서 하나를 가리키는 임의 액세스를 const_iterator 반환합니다.

constexpr const_iterator end() const noexcept;

반환 값

마지막 요소를 지나서 하나를 가리키는 임의 액세스를 const_iterator 반환합니다.

설명

end는 해당 끝에 basic_string_view도달했는지 여부를 const_iterator 테스트하는 데 사용됩니다. 반환된 end 값은 역참조하면 안 됩니다.

basic_string_view::ends_with

문자열 뷰가 지정된 접미사로 끝나는지 확인합니다.

bool ends_with(const CharType c) const noexcept;
bool ends_with(const CharType* const x) const noexcept;
bool ends_with(const basic_string_view sv) const noexcept;

매개 변수

c
찾을 단일 문자 접미사입니다.

sv
찾을 접미사가 포함된 문자열 뷰입니다.
std::basic_string전달할 수 있습니다. 이 값을 로 basic_string_view변환합니다.

x
찾을 접미사가 포함된 Null로 끝나는 문자열입니다.

반환 값

true 문자열 뷰가 지정된 접미사로 끝나면 이고, false 그렇지 않으면.

설명

ends_with() 는 C++20의 새로운 기능입니다. 이 옵션을 사용하려면 이상 컴파일러 옵션을 지정 /std:c++20 합니다.

문자열 뷰가 지정된 접두사로 시작하는지 확인하려면 참조 starts_with 하세요.

예시

// Requires /std:c++20 or /std:c++latest
#include <string>
#include <iostream>

int main()
{
    std::cout << std::boolalpha; // so booleans show as 'true'/'false'  
    std::cout << std::string_view("abcdefg").ends_with('g') << '\n';
    std::cout << std::string_view("abcdefg").ends_with("eFg") << '\n';

    std::basic_string<char> str2 = "efg";
    std::cout << std::string_view("abcdefg").ends_with(str2);

    return 0;
}
true
false
true

basic_string_view::find

basic_string_view 지정된 문자 시퀀스에 일치하는 문자 또는 부분 문자열의 첫 번째 발생을 정방향으로 검색합니다.

constexpr size_type find(basic_string_view str, size_type offset = 0) const noexcept;
constexpr size_type find(charT chVal, size_type offset = 0) const noexcept;
constexpr size_type find(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find(const charT* ptr, size_type offset = 0) const;

매개 변수

str
basic_string_view 멤버 함수가 검색할 대상입니다.

chVal
멤버 함수가 검색할 문자 값입니다.

offset
검색을 시작할 인덱스입니다.

ptr
멤버 함수가 검색할 C 문자열입니다.

count
첫 번째 문자에서 ptr앞으로 계산되는 문자 수입니다.

반환 값

성공하면 검색되는 부분 문자열의 첫 문자 인덱스이고, 그렇지 않으면 npos입니다.

basic_string_view::find_first_not_of

지정 basic_string_view 되거나 변환 가능한 문자열 개체의 요소가 아닌 첫 번째 문자를 검색합니다.

constexpr size_type find_first_not_of(basic_string_view str, size_type offset = 0) const noexcept;
constexpr size_type find_first_not_of(charT chVal, size_type offset = 0) const noexcept;
constexpr size_type find_first_not_of(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find_first_not_of(const charT* ptr, size_type offset = 0) const;

매개 변수

str
basic_string_view 멤버 함수가 검색할 대상입니다.

chVal
멤버 함수가 검색할 문자 값입니다.

offset
검색을 시작할 인덱스입니다.

ptr
멤버 함수가 검색할 C 문자열입니다.

count
멤버 함수가 검색할 C 문자열의 첫 번째 문자에서 앞으로 계산되는 문자 수입니다.

반환 값

성공하면 검색되는 부분 문자열의 첫 문자 인덱스이고, 그렇지 않으면 npos입니다.

basic_string_view::find_first_of

지정된 요소와 일치하는 첫 번째 문자를 검색합니다 basic_string_view.

constexpr size_type find_first_of(basic_string_view str, size_type offset = 0) const noexcept;
constexpr size_type find_first_of(charT chVal, size_type offset = 0) const noexcept;
constexpr size_type find_first_of(const charT* str, size_type offset, size_type count) const;
constexpr size_type find_first_of(const charT* str, size_type offset = 0) const;

매개 변수

chVal
멤버 함수가 검색할 문자 값입니다.

offset
검색을 시작할 인덱스입니다.

ptr
멤버 함수가 검색할 C 문자열입니다.

count
멤버 함수가 검색할 C 문자열의 첫 번째 문자에서 앞으로 계산되는 문자 수입니다.

str
basic_string_view 멤버 함수가 검색할 대상입니다.

반환 값

성공하면 검색되는 부분 문자열의 첫 문자 인덱스이고, 그렇지 않으면 npos입니다.

basic_string_view::find_last_not_of

지정된 요소의 요소가 아닌 마지막 문자를 검색합니다 basic_string_view.

constexpr size_type find_last_not_of(basic_string_view str, size_type offset = npos) const noexcept;
constexpr size_type find_last_not_of(charT chVal, size_type offset = npos) const noexcept;
constexpr size_type find_last_not_of(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find_last_not_of(const charT* ptr, size_type offset = npos) const;

매개 변수

str
basic_string_view 멤버 함수가 검색할 대상입니다.

chVal
멤버 함수가 검색할 문자 값입니다.

offset
검색이 완료되는 인덱스입니다.

ptr
멤버 함수가 검색할 C 문자열입니다.

count
첫 번째 문자에서 앞으로 계산되는 문자 ptr수입니다.

반환 값

성공하면 검색되는 부분 문자열의 첫 문자 인덱스이고, 그렇지 않으면 string_view::npos입니다.

basic_string_view::find_last_of

지정된 요소와 일치하는 마지막 문자를 검색합니다 basic_string_view.

constexpr size_type find_last_of(basic_string_view str, size_type offset = npos) const noexcept;
constexpr size_type find_last_of(charT chVal, size_type offset = npos) const noexcept;
constexpr size_type find_last_of(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find_last_of(const charT* ptr, size_type offset = npos) const;

매개 변수

str
basic_string_view 멤버 함수가 검색할 대상입니다.

chVal
멤버 함수가 검색할 문자 값입니다.

offset
검색이 완료되는 인덱스입니다.

ptr
멤버 함수가 검색할 C 문자열입니다.

count
멤버 함수가 검색할 C 문자열의 첫 번째 문자에서 앞으로 계산되는 문자 수입니다.

반환 값

성공 시 검색되는 부분 문자열의 마지막 문자 인덱스이고, 그렇지 않으면 npos입니다.

basic_string_view::front

첫 번째 요소에 대한 값을 const_reference 반환합니다.

constexpr const_reference front() const;

반환 값

첫 번째 요소에 대한 A const_reference 입니다.

설명

비어 있으면 예외를 basic_string_view throw합니다.

basic_string_view::length

현재 요소 수를 반환합니다.

constexpr size_type length() const noexcept;

설명

멤버 함수는 .와 동일합니다 size.

basic_string_view::max_size

포함할 수 있는 basic_string_view 최대 문자 수를 반환합니다.

constexpr size_type max_size() const noexcept;

반환 값

포함할 수 있는 basic_string_view 최대 문자 수입니다.

설명

연산에서 길이가 1보다 max_size()큰 형식을 basic_string_view 생성할 때 형식 length_error 예외가 throw됩니다.

basic_string_view::operator=

다른 basic_string_view문자열 개체에 또는 변환 가능한 문자열 개체를 할당합니다basic_string_view.

constexpr basic_string_view& operator=(const basic_string_view&) noexcept = default;

예시

   string_view s = "Hello";
   string_view s2 = s;

basic_string_view::operator[]

지정된 인 const_reference 덱스가 있는 문자를 제공합니다.

constexpr const_reference operator[](size_type offset) const;

매개 변수

offset
참조할 요소의 인덱스입니다.

반환 값

const_reference 매개 변수 인덱스로 지정된 위치에 있는 문자에 대한 A입니다.

설명

첫 번째 요소의 인덱스는 0이고 다음 요소는 양의 정수에 의해 연속적으로 인덱싱되므로 basic_string_view 길이 n 에 숫자로 인덱싱된 n-1*n*th 요소가 있습니다.

operator[]는 .의 basic_string_view요소에 대한 읽기 액세스를 제공하기 위한 멤버 함수 at 보다 빠릅니다.

operator[] 에서는 인수로 전달된 인덱스가 유효한지 여부를 확인하지 않습니다. 잘못된 인덱스가 operator[] 전달되어 정의되지 않은 동작이 발생합니다.

기본 문자열 데이터가 소유 개체에 의해 수정되거나 삭제되면 반환된 참조가 무효화될 수 있습니다.

1 또는 2로 _ITERATOR_DEBUG_LEVEL 설정된 상태에서 컴파일할 때 경계를 벗어난 요소에 액세스하려고 하면 런타임 오류가 발생합니다 basic_string_view. 자세한 내용은 확인된 반복기을 참조하세요.

basic_string_view::rbegin

역방향 basic_string_view요소 const 의 첫 번째 요소에 반복기를 반환합니다.

constexpr const_reverse_iterator rbegin() const noexcept;

반환 값

역방향 basic_string_view의 첫 번째 요소에 임의 액세스 반복기를 반환하여 해당 취소되지 않은 마지막 요소의 주소를 지정합니다 basic_string_view.

설명

rbegin는 .와 함께 사용되는 것처럼 begin 역방향 basic_string_view 으로 basic_string_view사용됩니다. rbegin 를 사용하여 반복을 뒤로 초기화할 수 있습니다.

basic_string_view::remove_prefix

포인터를 지정된 요소 수만큼 앞으로 이동합니다.

constexpr void remove_prefix(size_type n);

설명

기본 데이터는 변경되지 않은 상태로 둡니다. 요소별로 포인터를 basic_string_view 앞으로 이동하고 프라이빗 size 데이터 멤버를 .로 size - nn 설정합니다.

basic_string_view::remove_suffix

뷰의 크기를 뒤에서 시작하는 지정된 요소 수만큼 줄입니다.

constexpr void remove_suffix(size_type n);

설명

기본 데이터와 포인터를 변경하지 않고 그대로 둡니다. 프라이빗 size 데이터 멤버를 .로 size - n설정합니다.

basic_string_view::rend

역방향basic_string_viewconst 마지막 요소 중 하나를 가리키는 반복기를 반환합니다.

constexpr reverse_iterator rend() const noexcept;

반환 값

const 역방향의 마지막 요소 중 하나를 가리키는 역방향 basic_string_view임의 액세스 반복기입니다.

설명

rend는 .와 함께 사용되는 것처럼 end 역방향 basic_string_view 으로 basic_string_view사용됩니다. rend 를 사용하여 역방향 반복기가 해당 반복기의 끝에 도달했는지 여부를 테스트할 수 있습니다 basic_string_view. 반환된 rend 값은 역참조하면 안 됩니다.

basic_string_view::rfind

basic_string_view 지정된 문자 시퀀스와 일치하는 부분 문자열을 역방향으로 검색합니다.

constexpr size_type rfind(basic_string_view str, size_type offset = npos) const noexcept;
constexpr size_type rfind(charT chVal, size_type offset = npos) const noexcept;
constexpr size_type rfind(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type rfind(const charT* ptr, size_type offset = npos) const;

매개 변수

chVal
멤버 함수가 검색할 문자 값입니다.

offset
검색을 시작할 인덱스입니다.

ptr
멤버 함수가 검색할 C 문자열입니다.

count
멤버 함수가 검색할 C 문자열의 첫 번째 문자에서 앞으로 계산되는 문자 수입니다.

str
basic_string_view 멤버 함수가 검색할 대상입니다.

반환 값

성공하면 부분 문자열의 첫 번째 문자 인덱스입니다. 그렇지 않으면 npos.

basic_string_view::size

basic_string_view에 있는 요소 수를 반환합니다.

constexpr size_type size() const noexcept;

반환 값

의 길이입니다 basic_string_view.

설명

A는 basic_string_view 길이를 수정할 수 있습니다(예: by remove_prefixremove_suffix.). 기본 문자열 데이터를 수정하지 않으므로 크기가 basic_string_view 반드시 기본 데이터의 크기는 아닙니다.

basic_string_view::starts_with

문자열 뷰가 지정된 접두사로 시작하는지 확인합니다.

bool starts_with(const CharType c) const noexcept;
bool starts_with(const CharType* const x) const noexcept;
bool starts_with(const basic_string_view sv) const noexcept;

매개 변수

c
찾을 단일 문자 접두사입니다.

sv
찾을 접두사를 포함하는 문자열 뷰입니다.
문자열 뷰로 std::basic_string변환되는 값을 전달할 수 있습니다.

x
찾을 접두사를 포함하는 Null로 끝나는 문자열입니다.

반환 값

true 문자열이 지정된 접두사로 시작되면 이고, false 그렇지 않으면.

설명

starts_with() 는 C++20의 새로운 기능입니다. 이 옵션을 사용하려면 이상 컴파일러 옵션을 지정 std:c++20 합니다.

문자열이 접미사로 끝나는지 확인 ends_with 합니다.

예시

// Requires /std:c++20 or /std:c++latest
#include <string>
#include <iostream>

int main()
{
    std::cout << std::boolalpha; // so booleans show as 'true'/'false'  
    std::cout << std::string_view("abcdefg").starts_with('b') << '\n';
    std::cout << std::string_view("abcdefg").starts_with("aBc") << '\n';

    std::basic_string<char> str2 = "abc";
    std::cout << std::string_view("abcdefg").starts_with(str2);

    return 0;
}
false
false
true

basic_string_view::substr

basic_string_view 지정된 위치에서 지정된 문자 수를 나타내는(최대) 값을 반환합니다.

constexpr basic_string_view substr(size_type offset = 0, size_type count = npos) const;

매개 변수

offset
기본값이 0인 복사본이 만들어지는 위치에 요소를 찾는 인덱스입니다.

count
부분 문자열에 포함할 문자 수(있는 경우)입니다.

반환 값

basic_string_view 요소의 지정된 하위 시퀀스를 나타내는 개체입니다.

basic_string_view::swap

basic_string_view개의 s를 교환합니다. 즉, 기본 문자열 데이터에 대한 포인터와 크기 값을 교환합니다.

constexpr void swap(basic_string_view& sv) noexcept;

매개 변수

sv
포인터 및 크기 값을 대상 basic_string_view값과 교환할 원본 basic_string_view 입니다.

참고 항목

<string_view>
C++ 표준 라이브러리의 스레드 보안