Aracılığıyla paylaş


basic_string_view sınıfı

Sınıf şablonu basic_string_view<charT> C++17'de, bir işlevin ilgili olmayan çeşitli dize türlerini kabul edebilmesi için, işlevin bu türlerde şablon haline getirilmeye gerek kalmadan güvenli ve verimli bir şekilde çalışması için eklenmiştir. sınıfı, bitişik bir karakter veri dizisine sahip olmayan bir işaretçi ve dizideki karakter sayısını belirten bir uzunluk içerir. Dizinin null olarak sonlandırılıp sonlandırılmadığına ilişkin bir varsayım yapılmaz.

Standart kitaplık, öğelerin türüne göre çeşitli özelleştirmeler tanımlar:

  • string_view
  • wstring_view
  • u16string_view
  • u32string_view

, basic_string_view dize verilerini okumak için gereken en düşük ortak arabirimi açıklar. Temel alınan verilere en iyi erişimi sağlar; hiçbir kopya yapmaz (işlev dışında copy ). Veriler herhangi bir konumda null değerler (\0) içerebilir veya içermeyebilir. A basic_string_view , nesnenin ömrü üzerinde hiçbir denetime sahip değildir. Temel alınan dize verilerinin geçerli olduğundan emin olmak çağıranın sorumluluğundadır.

Türünde string_view bir parametre kabul eden bir işlev, işlevi şablon haline getirmeden veya işlevi dize türlerinin belirli bir alt kümesiyle kısıtlamadan dize benzeri herhangi bir türle çalışacak şekilde yapılabilir. Tek gereksinim, dize türünden öğesine örtük bir dönüştürmenin mevcut olmasıdır string_view. Tüm standart dize türleri, aynı öğe türünü içeren bir'e string_view örtük olarak dönüştürülebilir. Başka bir deyişle, a std::string bir'e string_view dönüştürülebilir, ancak öğesine wstring_viewdönüştürülemez.

Aşağıdaki örnekte, türünde fbir parametre alan şablon olmayan bir işlev wstring_view gösterilmektedir. , ve std::wstringtüründe wchar_t*winrt::hstringbağımsız değişkenlerle çağrılabilir.

// 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);

Syntax

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

Parameters

CharType
içinde basic_string_viewdepolanan karakterlerin türü. C++ Standart Kitaplığı, bu şablonun özelleştirmeleri için aşağıdaki tür tanımlarını sağlar.

Traits
varsayılan değeridir char_traits<CharType>.

Constructors

Constructor Description
basic_string_view Boş olan veya başka bir basic_string_view dize nesnesinin verilerinin tümünü veya bir bölümünü ya da C stili bir karakter dizisini işaret eden bir oluşturur.

Typedefs

Type name Description
const_iterator Öğeleri okuyabilen const rastgele erişim yineleyicisi.
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;

Member operators

Operator Description
operator= Başka basic_string_viewbir basic_string_view öğesine veya dönüştürülebilir dize nesnesi atar.
operator[] Belirtilen dizindeki öğesini döndürür.

Member functions

Member function Description
at const_reference Belirtilen konumdaki öğesine bir döndürür.
back Son öğeye bir const_reference döndürür.
begin İlk öğeyi ele alan bir const yineleyici döndürür. (basic_string_viewsabittir.)
cbegin ile beginaynı.
cend Son öğeyi geçene işaret eden bir const yineleyici döndürür.
copy Bir kaynaktaki basic_string_view dizinlenmiş konumdan en fazla belirtilen sayıda karakteri hedef karakter dizisine kopyalar. (Önerilmez. Bunun yerine kullanın _Copy_s .)
_Copy_s Güvenli CRT kopyalama işlevi.
compare Eşit basic_string_view olup olmadığını veya birinin sözcüksel olarak diğerinden küçük olup olmadığını belirlemek için belirtilen basic_string_view ile karşılaştırır.
crbegin ile rbeginaynı.
crend ile rendaynı.
data Karakter dizisine sahip olmayan ham bir işaretçi döndürür.
empty öğesinin karakter içerip içermediğini sınar basic_string_view .
end ile cendaynı.
ends_with C++20 Dize görünümünün belirtilen sonekle bitip bitmediğini denetleyin.
find Belirtilen karakter dizisiyle eşleşen bir alt dizenin ilk geçtiği yeri ileri yönde arar.
find_first_not_of Belirtilen basic_string_view veya dönüştürülebilir dize nesnesinin herhangi bir öğesi olmayan ilk karakteri arar.
find_first_of Belirtilen basic_string_view veya dönüştürülebilir dize nesnesinin herhangi bir öğesiyle eşleşen ilk karakteri arar.
find_last_not_of Belirtilen basic_string_view veya dönüştürülebilir dize nesnesinin herhangi bir öğesi olmayan son karakteri arar.
find_last_of Belirtilen basic_string_view veya dönüştürülebilir dize nesnesinin öğesi olan son karakteri arar.
front İlk öğeye bir const_reference döndürür.
length Geçerli öğe sayısını döndürür.
max_size İçerebileceği en fazla karakter basic_string_view sayısını döndürür.
rbegin ters çevrilmiş constiçindeki basic_string_view ilk öğeyi ele alan bir yineleyici döndürür.
remove_prefix İşaretçiyi belirtilen sayıda öğeyle ileri taşır.
remove_suffix Görünümün boyutunu, arkadan başlayarak belirtilen sayıda öğeyle küçültür.
rend Ters çevrilmiş constbir basic_string_view içindeki son öğeden birine işaret eden bir yineleyici döndürür.
rfind basic_string_view Belirtilen karakter dizisiyle eşleşen bir alt dizenin ilk oluşumunu ters olarak arar.
size Geçerli öğe sayısını döndürür.
starts_with C++20 Dize görünümünün belirli bir ön ekle başlayıp başlamadığını denetleyin.
substr Belirtilen bir dizinden başlayarak belirtilen uzunlukta bir alt dize döndürür.
swap İki basic_string_view nesnenin içeriğini değiştirme.

Remarks

Bir işlevden öğelerden daha max_size uzun bir dizi oluşturması istenirse, işlevi türünde length_errorbir nesne oluşturarak bir uzunluk hatası bildirir.

Requirements

/std:c++17 veya üzerini seçin.

Header:<string_view>

Namespace:std

basic_string_view::at

Belirtilen sıfır tabanlı dizindeki karaktere bir const_reference döndürür.

constexpr const_reference at(size_type offset) const;

Parameters

offset
Başvurulacak öğenin dizini.

Return value

Parametre dizini tarafından belirtilen konumdaki karaktere A const_reference .

Remarks

İlk öğenin dizini sıfırdır ve aşağıdaki öğeler pozitif tamsayılar tarafından ardışık olarak dizinlenir, böylece uzunluk basic_string_viewn sayısı tarafından ndizinlenmiş *n - 1*. öğesi olur. at aksine operator[]geçersiz dizinler için bir özel durum oluşturur.

Genel olarak ve at gibi std::vector diziler için hiçbir zaman kullanılmaması önerilirbasic_string_view. Bir diziye geçirilen geçersiz dizin, geliştirme sırasında bulunması ve düzeltilmesi gereken bir mantık hatasıdır. Bir program dizinlerinin geçerli olduğundan emin değilse, bunları test etmeli, dikkatsiz programlamaya karşı savunmak için özel durumları çağırmalı at() ve güvenmemelidir.

Daha fazla bilgi için bkz. basic_string_view::operator[].

Example

// 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

Son öğeye bir const_reference döndürür.

constexpr const_reference back() const;

Return value

içindeki const_reference son öğeye basic_string_viewA

Remarks

boşsa basic_string_view bir özel durum oluşturur.

Örneğin çağrısıyla basic_string_viewbir remove_suffix değiştirildikten sonra, bu işlev tarafından döndürülen öğenin artık temel alınan verilerdeki son öğe olmadığını unutmayın.

Example

string_view C dizesi değişmez değeriyle yapılan bir, sonlandırıcı null değerini içermez. Bu nedenle aşağıdaki örnekte döndürür back'p' ve döndürmez '\0'.

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

Eklenmiş null değerler başka bir karakter olarak kabul edilir:

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

basic_string_view::basic_string_view

bir basic_string_viewoluşturur.

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);

Parameters

str
Karakter değerlerinin işaretçisi.

len
Görünüme eklenecek karakter sayısı.

Remarks

parametresine sahip charT* oluşturucular girişin null olarak sonlandırıldığını, ancak sonlandırıcı null değerinin basic_string_viewöğesine dahil olmadığını varsayar.

Değişmez değerle de basic_string_view oluşturabilirsiniz. Bkz. operator"" sv.

basic_string_view::begin

ile cbeginaynı.

constexpr const_iterator begin() const noexcept;

Return value

İlk öğeyi ele alan bir const_iterator döndürür.

basic_string_view::cbegin

Aralıktaki ilk öğeyi ele alan bir const_iterator döndürür.

constexpr const_iterator cbegin() const noexcept;

Return value

Aralığın const ilk öğesini veya boş aralığın sonunun hemen ötesindeki konumu işaret eden rastgele erişim yineleyicisi (boş aralık için). cbegin() == cend()

basic_string_view::cend

const_iterator Bir aralıktaki son öğenin hemen ötesindeki konumu ele alan bir döndürür.

constexpr const_iterator cend() const noexcept;

Return value

const Aralığın sonunun hemen ötesine işaret eden rastgele erişim yineleyicisi.

Remarks

tarafından cend döndürülen değer başvurulmamalıdır.

basic_string_view::compare

belirtilen basic_string_view (veya dönüştürülebilir dize türü) ile büyük/küçük harfe duyarlı bir karşılaştırma yapar ve iki nesnenin eşit olup olmadığını veya birinin sözcüksel olarak diğerinden küçük olup olmadığını belirler. İşleçler <string_view> karşılaştırmalar yapmak için bu üye işlevini kullanır.

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;

Parameters

strv
Bu basic_string_view ile karşılaştırılacak basic_string_viewolan .

pos
Karşılaştırmanın başladığı bunun basic_string_view dizini.

num
Karşılaştırılacak karakter basic_string_view sayısı üst sınırı.

num2
Karşılaştırılacak karakter strv sayısı üst sınırı.

offset
Karşılaştırmanın strv başladığı dizin.

ptr
Bu basic_string_viewile karşılaştırılacak C dizesi.

Return value

  • Veya basic_string_view değerinden küçükse strv negatif bir değer ptr
  • İki karakter dizisi eşitse sıfır
  • Bu basic_string_view değer veya değerinden büyükse strv pozitif bir değer ptr

Remarks

Üye işlevleri, compare her karakter dizisinin tümünün veya bir bölümünün büyük/küçük harfe duyarlı karşılaştırmasını yapar.

Example

// 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

Bir kaynaktaki basic_string_view dizinlenmiş konumdan en fazla belirtilen sayıda karakteri hedef karakter dizisine kopyalar. Bunun yerine secure işlevini basic_string_view::_Copy_s kullanmanızı öneririz.

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

Parameters

ptr
Öğelerin kopyalandığı hedef karakter dizisi.

count
Kaynaktan basic_string_viewen fazla kopyalanacak karakter sayısı.

offset
Kaynakta basic_string_view kopyaların oluşturulacağı başlangıç konumu.

Return value

Kopyalanan karakter sayısı.

Remarks

Null karakter, kopyanın sonuna eklenmez.

basic_string_view::_Copy_s

yerine copykullanılacak güvenli CRT kopyalama işlevi.

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

Parameters

dest
Öğelerin kopyalandığı hedef karakter dizisi.

dest_size
boyutu dest.

count Kaynak dizeden en fazla kopyalanacak karakter sayısı.

_Off
Kaynak dizede kopyaların oluşturulacağı başlangıç konumu.

Return value

Kopyalanan karakter sayısı.

Remarks

Null karakter, kopyanın sonuna eklenmez.

For more information, see c-runtime-library/security-features-in-the-crt.

basic_string_view::crbegin

const_reverse_iterator ters çevrilmiş basic_string_viewiçindeki ilk öğeyi ele alan bir döndürür.

constexpr const_reverse_iterator crbegin() const noexcept;

Return value

const_reverse_iterator Ters çevrilmiş basic_string_viewiçindeki ilk öğeyi ele alan bir .

basic_string_view::crend

ile rendaynı.

constexpr const_reverse_iterator crend() const noexcept;

Return value

Ters çevrilmiş const_reverse_iteratorbir basic_string_view öğesinin sonunu geçene yönelik bir döndürür.

basic_string_view::data

oluşturmak basic_string_viewiçin kullanılan nesnenin en sabit karakter dizisine sahip olmayan ham bir işaretçi döndürür.

constexpr value_type *data() const noexcept;

Return value

Karakter dizisinin ilk öğesi için işaretçiden sabite.

Remarks

İşaretçi karakterleri değiştiremez.

Karakter dizisi null basic_string_view olarak sonlandırılmamış olabilir. hiçbir null karakter eklenemediğinden, için data dönüş türü geçerli bir C dizesi değil. Null karakterin \0 türündeki basic_string_view bir nesnede özel bir anlamı yoktur ve diğer karakterler gibi nesnenin basic_string_view bir parçası olabilir.

basic_string_view::empty

öğesinin basic_string_view karakter içerip içermediğini sınar.

constexpr bool empty() const noexcept;

Return value

true nesne karakter basic_string_view içermiyorsa; false en az bir karakter içeriyorsa.

Remarks

Üye işlevi () == 0 ile sizeeşdeğerdir.

basic_string_view::end

Son öğeyi geçene işaret eden rastgele bir erişim const_iterator döndürür.

constexpr const_iterator end() const noexcept;

Return value

Son öğeyi geçene işaret eden rastgele bir erişim const_iterator döndürür.

Remarks

end , öğesinin const_iterator sonuna basic_string_viewulaşıp ulaşmadığını test etmek için kullanılır. tarafından end döndürülen değer başvurulmamalıdır.

basic_string_view::ends_with

Dize görünümünün belirtilen sonekle bitip bitmediğini denetleyin.

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;

Parameters

c
Aranacak tek karakterli sonek.

sv
Aranacak son eki içeren bir dize görünümü.
bir geçirebilirsiniz std::basic_string. Bu, öğesine dönüştürür basic_string_view.

x
Aranacak son eki içeren null sonlandırılmış karakter dizesi.

Return value

true dize görünümü belirtilen sonekle bitiyorsa; false yoksa.

Remarks

ends_with() C++20 sürümünde yenidir. Bunu kullanmak için veya sonraki derleyici seçeneğini belirtin /std:c++20 .

Bir dize görünümünün belirtilen ön ekle başlayıp başlamadiğini denetlemek için bkz starts_with .

Example

// Requires /std:c++20 or later
#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 Belirtilen karakter dizisiyle eşleşen bir karakterin veya alt dizenin ilk geçtiği yeri ileri yönde arar.

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;

Parameters

str
basic_string_view Üye işlevinin arandığı işlev.

chVal
Üye işlevinin aranacak karakter değeri.

offset
Aramanın başlayacağı dizin.

ptr
Üye işlevinin arandığı C dizesi.

count
içindeki ptrkarakter sayısı, ilk karakterden ileri doğru sayma.

Return value

Başarılı olduğunda alt dizenin ilk karakterinin dizini arandı; aksi takdirde npos.

basic_string_view::find_first_not_of

Belirtilen basic_string_view veya dönüştürülebilir dize nesnesinin öğesi olmayan ilk karakteri arar.

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;

Parameters

str
basic_string_view Üye işlevinin arandığı işlev.

chVal
Üye işlevinin aranacak karakter değeri.

offset
Aramanın başlayacağı dizin.

ptr
Üye işlevinin arandığı C dizesi.

count
Üye işlevinin arandığı C dizesindeki ilk karakterden ileri doğru sayılan karakter sayısı.

Return value

Başarılı olduğunda alt dizenin ilk karakterinin dizini arandı; aksi takdirde npos.

basic_string_view::find_first_of

Belirtilen basic_string_viewöğesinin herhangi bir öğesiyle eşleşen ilk karakteri arar.

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;

Parameters

chVal
Üye işlevinin aranacak karakter değeri.

offset
Aramanın başlayacağı dizin.

ptr
Üye işlevinin arandığı C dizesi.

count
Üye işlevinin arandığı C dizesindeki ilk karakterden ileri doğru sayılan karakter sayısı.

str
basic_string_view Üye işlevinin arandığı işlev.

Return value

Başarılı olduğunda alt dizenin ilk karakterinin dizini arandı; aksi takdirde npos.

basic_string_view::find_last_not_of

Belirtilen basic_string_viewöğesinin herhangi bir öğesi olmayan son karakteri arar.

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;

Parameters

str
basic_string_view Üye işlevinin arandığı işlev.

chVal
Üye işlevinin aranacak karakter değeri.

offset
Aramanın bitmek üzere olduğu dizin.

ptr
Üye işlevinin arandığı C dizesi.

count
içindeki ilk karakterden ileri doğru sayan karakter ptrsayısı.

Return value

Başarılı olduğunda alt dizenin ilk karakterinin dizini arandı; aksi takdirde string_view::npos.

basic_string_view::find_last_of

Belirtilen basic_string_viewöğesinin herhangi bir öğesiyle eşleşen son karakteri arar.

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;

Parameters

str
basic_string_view Üye işlevinin arandığı işlev.

chVal
Üye işlevinin aranacak karakter değeri.

offset
Aramanın bitmek üzere olduğu dizin.

ptr
Üye işlevinin arandığı C dizesi.

count
Üye işlevinin arandığı C dizesindeki ilk karakterden ileri doğru sayılan karakter sayısı.

Return value

Başarılı olduğunda alt dizenin aranan son karakterinin dizini; aksi takdirde npos.

basic_string_view::front

İlk öğeye bir const_reference döndürür.

constexpr const_reference front() const;

Return value

İlk öğeye A const_reference .

Remarks

boşsa basic_string_view bir özel durum oluşturur.

basic_string_view::length

Geçerli öğe sayısını döndürür.

constexpr size_type length() const noexcept;

Remarks

üye işlevi ile aynıdır size.

basic_string_view::max_size

İçerebileceği en fazla karakter basic_string_view sayısını döndürür.

constexpr size_type max_size() const noexcept;

Return value

Bir karakterin içerebileceği en fazla karakter basic_string_view sayısı.

Remarks

bir işlem uzunluğundan length_errorbüyük bir basic_string_view ürettiğinde tür max_size() özel durumu oluşur.

basic_string_view::operator=

Başka basic_string_viewbir basic_string_view öğesine veya dönüştürülebilir dize nesnesi atar.

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

Example

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

basic_string_view::operator[]

const_reference Belirtilen dizine sahip karaktere bir sağlar.

constexpr const_reference operator[](size_type offset) const;

Parameters

offset
Başvurulacak öğenin dizini.

Return value

Parametre dizini tarafından belirtilen konumdaki karaktere A const_reference .

Remarks

İlk öğenin dizini sıfırdır ve aşağıdaki öğeler pozitif tamsayılar tarafından ardışık olarak dizinlenir, böylece uzunluk basic_string_viewn sayısı tarafından ndizinlenmiş bir *n-1*. öğesi olur.

operator[] , öğesinin öğelerine okuma erişimi sağlamak için üye işlevinden at daha hızlıdır basic_string_view.

operator[] bağımsız değişken olarak geçirilen dizinin geçerli olup olmadığını denetlemez. Geçersiz bir dizin geçirildiğinde operator[] tanımsız davranışla sonuçlanır.

Temel alınan dize verileri sahip olan nesne tarafından değiştirilir veya silinirse döndürülen başvuru geçersiz kılınabilir.

_ITERATOR_DEBUG_LEVEL ile 1 veya 2 olarak ayarlanırken, sınırlarının basic_string_viewdışındaki bir öğeye erişmeye çalıştığınızda çalışma zamanı hatası oluşur. For more information, see Checked Iterators.

basic_string_view::rbegin

Ters çevrilmiş constiçindeki ilk öğeye bir basic_string_view yineleyici döndürür.

constexpr const_reverse_iterator rbegin() const noexcept;

Return value

Ters çevrilmiş basic_string_viewiçindeki ilk öğeye rastgele erişim yineleyicisi döndürür ve karşılık gelen ters basic_string_viewçevrilmeyen içindeki son öğeyi ele alır.

Remarks

rbegin, ile kullanıldığı gibi basic_string_view ters çevrilmiş begin bir basic_string_viewile kullanılır. rbegin bir yinelemeyi geriye doğru başlatmak için kullanılabilir.

basic_string_view::remove_prefix

İşaretçiyi belirtilen sayıda öğeyle ileri taşır.

constexpr void remove_prefix(size_type n);

Remarks

Temel alınan verileri değişmeden bırakır. İşaretçiyi basic_string_view öğelere göre n ileri taşır ve özel size veri üyesini olarak size - nayarlar.

basic_string_view::remove_suffix

Görünümün boyutunu, arkadan başlayarak belirtilen sayıda öğeyle küçültür.

constexpr void remove_suffix(size_type n);

Remarks

Temel alınan verileri ve işaretçiyi değişmeden bırakır. Özel size veri üyesini olarak size - nayarlar.

basic_string_view::rend

Ters çevrilmiş constbir basic_string_view içindeki son öğeden birine işaret eden bir yineleyici döndürür.

constexpr reverse_iterator rend() const noexcept;

Return value

Ters const çevrilmiş basic_string_viewbir içindeki son öğeden birine işaret eden ters rastgele erişim yineleyicisi.

Remarks

rend, ile kullanıldığı gibi basic_string_view ters çevrilmiş end bir basic_string_viewile kullanılır. rend ters yineleyicinin sonuna basic_string_viewulaşıp ulaşmadığını test etmek için kullanılabilir. tarafından rend döndürülen değer başvurulmamalıdır.

basic_string_view::rfind

basic_string_view Belirtilen karakter dizisiyle eşleşen bir alt dizeyi tersten arar.

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;

Parameters

chVal
Üye işlevinin aranacak karakter değeri.

offset
Aramanın başlayacağı dizin.

ptr
Üye işlevinin arandığı C dizesi.

count
Üye işlevinin arandığı C dizesindeki ilk karakterden ileri doğru sayılan karakter sayısı.

str
basic_string_view Üye işlevinin arandığı işlev.

Return value

Başarılı olduğunda alt dizenin ilk karakterinin dizini; aksi takdirde npos.

basic_string_view::size

içindeki basic_string_viewöğe sayısını döndürür.

constexpr size_type size() const noexcept;

Return value

uzunluğunu gösterir basic_string_view.

Remarks

Abasic_string_view, örneğin ve remove_prefixile remove_suffix uzunluğunu değiştirebilir. Bu işlem temel alınan dize verilerini değiştirmediğinden, boyutunun basic_string_view temel alınan verilerin boyutu olması gerekmez.

basic_string_view::starts_with

Dize görünümünün belirtilen ön ekle başlayıp başlamadığını denetleyin.

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;

Parameters

c
Aranacak tek karakterli ön ek.

sv
Aranacak ön eki içeren bir dize görünümü.
dize görünümüne dönüştüren bir geçirebilirsiniz std::basic_string.

x
Aranacak ön eki içeren null sonlandırılmış karakter dizesi.

Return value

true dize belirtilen ön ek ile başlıyorsa; false yoksa.

Remarks

starts_with() C++20 sürümünde yenidir. Bunu kullanmak için veya sonraki derleyici seçeneğini belirtin /std:c++20 .

Bir dizenin sonekle bitip bitmediğini görmek için bkz ends_with .

Example

// Requires /std:c++20 or later
#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 Belirtilen konumdaki belirtilen karakter sayısını (en fazla) temsil eden bir döndürür.

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

Parameters

offset
Varsayılan değeri 0 olan, kopyanın oluşturulduğu konumda öğeyi bulan dizin.

count
Varsa, alt dizeye eklenecek karakter sayısı.

Return value

basic_string_view Öğelerin belirtilen alt dizisini temsil eden nesne.

basic_string_view::swap

basic_string_viewİki s değerini, diğer bir deyişle işaretçileri temel alınan dize verilerine ve boyut değerlerini değiştirir.

constexpr void swap(basic_string_view& sv) noexcept;

Parameters

sv
İşaretçi ve boyut değerleri hedef basic_string_viewile değiştirilecek olan kaynakbasic_string_view.

See also

<string_view>
C++ Standart Kitaplığında İş Parçacığı Güvenliği