Bagikan melalui


basic_string_view kelas

Templat basic_string_view<charT> kelas ditambahkan di C++17 untuk berfungsi sebagai cara yang aman dan efisien bagi fungsi untuk menerima berbagai jenis string yang tidak terkait tanpa fungsi harus di-templat pada jenis tersebut. Kelas ini menyimpan pointer non-pemilik ke urutan data karakter yang berdekatan, dan panjang yang menentukan jumlah karakter dalam urutan. Tidak ada asumsi yang dibuat tentang apakah urutan dihentikan null.

Pustaka standar mendefinisikan beberapa spesialisasi berdasarkan jenis elemen:

  • string_view
  • wstring_view
  • u16string_view
  • u32string_view

A basic_string_view menjelaskan antarmuka umum minimum yang diperlukan untuk membaca data string. Ini menyediakan akses const ke data yang mendasar; tidak membuat salinan (kecuali untuk copy fungsi ). Data mungkin atau mungkin tidak berisi nilai null (\0) pada posisi apa pun. Tidak basic_string_view memiliki kontrol atas masa pakai objek. Ini adalah tanggung jawab pemanggil untuk memastikan bahwa data string yang mendasar valid.

Fungsi yang menerima parameter jenis string_view dapat dibuat untuk bekerja dengan jenis seperti string apa pun, tanpa membuat fungsi menjadi templat, atau membatasi fungsi ke subset jenis string tertentu. Satu-satunya persyaratan adalah bahwa konversi implisit ada dari jenis string ke string_view. Semua jenis string standar secara implisit dapat dikonversi ke yang string_view berisi jenis elemen yang sama. Dengan kata lain, dapat std::string dikonversi ke string_view tetapi tidak ke wstring_view.

Contoh berikut menunjukkan fungsi f non-templat yang mengambil parameter jenis wstring_view. Ini dapat dipanggil dengan argumen jenis std::wstring, , wchar_t*dan 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);

Sintaks

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

Parameter

CharType
Jenis karakter yang disimpan di basic_string_view. Pustaka Standar C++ menyediakan typedef berikut untuk spesialisasi templat ini.

Traits
Default ke char_traits<CharType>.

Konstruktor

Konstruktor Deskripsi
basic_string_view Membuat basic_string_view yang kosong atau menunjuk ke semua atau sebagian dari beberapa data objek string lainnya, atau ke array karakter gaya C.

Typedefs

Nama jenis Deskripsi
const_iterator Iterator akses acak yang dapat membaca const elemen.
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 anggota

Operator Deskripsi
operator= basic_string_view Menetapkan objek string atau yang dapat dikonversi ke objek lain basic_string_view.
operator[] Mengembalikan elemen pada indeks yang ditentukan.

Fungsi anggota

Fungsi anggota Deskripsi
at Mengembalikan const_reference ke elemen di lokasi tertentu.
back Mengembalikan const_reference ke elemen terakhir.
begin Mengembalikan iterator yang const menangani elemen pertama. (basic_string_views tidak dapat diubah.)
cbegin Sama seperti begin.
cend Mengembalikan iterator const yang menunjuk ke satu melewati elemen terakhir.
copy Menyalin paling banyak jumlah karakter tertentu dari posisi terindeks dalam sumber basic_string_view ke array karakter target. (Tidak disarankan. Gunakan _Copy_s sebagai gantinya.)
_Copy_s Fungsi salinan CRT yang aman.
compare basic_string_view Membandingkan dengan yang ditentukan basic_string_view untuk menentukan apakah mereka sama atau jika satu secara leksikografis kurang dari yang lain.
crbegin Sama seperti rbegin.
crend Sama seperti rend.
data Mengembalikan pointer non-pemilik mentah ke urutan karakter.
empty Menguji apakah berisi basic_string_view karakter.
end Sama seperti cend.
ends_withC++20 Periksa apakah tampilan string diakhiri dengan akhiran tertentu.
find Mencari ke arah depan untuk kemunculan pertama substring yang cocok dengan urutan karakter tertentu.
find_first_not_of Mencari karakter pertama yang bukan elemen apa pun dari objek string yang ditentukan basic_string_view atau dapat dikonversi.
find_first_of Mencari karakter pertama yang cocok dengan elemen apa pun dari objek string tertentu atau yang dapat dikonversi basic_string_view .
find_last_not_of Mencari karakter terakhir yang bukan elemen apa pun dari objek string yang ditentukan basic_string_view atau dapat dikonversi.
find_last_of Mencari karakter terakhir yang merupakan elemen dari objek string yang ditentukan basic_string_view atau dapat dikonversi.
front Mengembalikan const_reference ke elemen pertama.
length Mengembalikan jumlah elemen saat ini.
max_size Mengembalikan jumlah maksimum karakter yang dapat dimuat basic_string_view .
rbegin Mengembalikan iterator const yang membahas elemen pertama dalam terbalik basic_string_view.
remove_prefix Memindahkan penunjuk ke depan dengan jumlah elemen yang ditentukan.
remove_suffix Mengurangi ukuran tampilan dengan jumlah elemen yang ditentukan mulai dari belakang.
rend Mengembalikan iterator const yang menunjuk ke satu melewati elemen terakhir dalam terbalik basic_string_view.
rfind basic_string_view Mencari secara terbalik untuk kemunculan pertama substring yang cocok dengan urutan karakter tertentu.
size Mengembalikan jumlah elemen saat ini.
starts_withC++20 Periksa apakah tampilan string dimulai dengan awalan tertentu.
substr Mengembalikan substring dengan panjang yang ditentukan mulai dari indeks tertentu.
swap Tukarkan konten dua basic_string_view objek.

Keterangan

Jika fungsi diminta untuk menghasilkan urutan yang lebih panjang dari max_size elemen, fungsi melaporkan kesalahan panjang dengan melemparkan objek jenis length_error.

Persyaratan

std:c++17 atau yang lebih baru.

Header:<string_view>

Ruang nama:std

basic_string_view::at

Mengembalikan const_reference ke karakter pada indeks berbasis nol yang ditentukan.

constexpr const_reference at(size_type offset) const;

Parameter

offset
Indeks elemen yang akan dirujuk.

Nilai hasil

A const_reference ke karakter pada posisi yang ditentukan oleh indeks parameter.

Keterangan

Elemen pertama memiliki indeks nol dan elemen berikut diindeks secara berturut-turut oleh bilangan bulat positif, sehingga basic_string_view panjangnya n memiliki elemen *n*th yang diindeks oleh angka n - 1. at melempar pengecualian untuk indeks yang tidak valid, tidak seperti operator[].

Secara umum, kami menyarankan agar at untuk urutan seperti std::vector dan basic_string_view tidak boleh digunakan. Indeks yang tidak valid yang diteruskan ke urutan adalah kesalahan logika yang harus ditemukan dan diperbaiki selama pengembangan. Jika program tidak yakin bahwa indeksnya valid, program harus mengujinya, tidak memanggil at() dan mengandalkan pengecualian untuk bertahan dari pemrograman yang ceroboh.

Untuk informasi selengkapnya, lihat basic_string_view::operator[] .

Contoh

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

Mengembalikan const_reference ke elemen terakhir.

constexpr const_reference back() const;

Nilai hasil

A const_reference hingga elemen terakhir dalam basic_string_view.

Keterangan

Melempar pengecualian jika basic_string_view kosong.

Perlu diingat remove_suffixbahwa setelah basic_string_view dimodifikasi, misalnya dengan memanggil , maka elemen yang dikembalikan oleh fungsi ini bukan lagi elemen terakhir dalam data yang mendasar.

Contoh

string_view Yang dibangun dengan string C harfiah tidak menyertakan penghentian null. Jadi dalam contoh berikut, back mengembalikan 'p' dan bukan '\0'.

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

Null yang disematkan diperlakukan sebagai karakter lain:

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

basic_string_view::basic_string_view

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

Parameter

str
Penunjuk ke nilai karakter.

len
Jumlah karakter yang akan disertakan dalam tampilan.

Keterangan

Konstruktor dengan charT* parameter mengasumsikan bahwa input dihentikan null, tetapi penghentian null tidak disertakan dalam basic_string_view.

Anda juga dapat membangun basic_string_view dengan harfiah. Lihat operator"" sv.

basic_string_view::begin

Sama seperti cbegin.

constexpr const_iterator begin() const noexcept;

Nilai hasil

Mengembalikan const_iterator alamat elemen pertama.

basic_string_view::cbegin

Mengembalikan const_iterator yang membahas elemen pertama dalam rentang.

constexpr const_iterator cbegin() const noexcept;

Nilai hasil

Iterator const akses acak yang menunjuk pada elemen pertama rentang, atau lokasi tepat di luar akhir rentang kosong (untuk rentang kosong, cbegin() == cend()).

basic_string_view::cend

Mengembalikan const_iterator yang membahas lokasi tepat di luar elemen terakhir dalam rentang.

constexpr const_iterator cend() const noexcept;

Nilai hasil

Iterator const akses acak yang menunjuk tepat di luar akhir rentang.

Keterangan

Nilai yang dikembalikan oleh cend tidak boleh didereferensikan.

basic_string_view::compare

Apakah perbandingan peka huruf besar/kecil dengan yang ditentukan basic_string_view (atau jenis string yang dapat dikonversi) untuk menentukan apakah kedua objek sama atau jika satu secara leksikografis kurang dari yang lain. Operator <string_view> menggunakan fungsi anggota ini untuk melakukan perbandingan.

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;

Parameter

strv
Yang basic_string_view akan dibandingkan dengan ini basic_string_view.

pos
Indeks ini basic_string_view di mana perbandingan dimulai.

num
Jumlah maksimum karakter dari ini basic_string_view untuk dibandingkan.

num2
Jumlah maksimum karakter dari strv yang akan dibandingkan.

offset
Indeks strv di mana perbandingan dimulai.

ptr
String C yang akan dibandingkan dengan ini basic_string_view.

Nilai hasil

  • Nilai negatif jika ini basic_string_view kurang dari strv atau ptr
  • Nol jika dua urutan karakter sama
  • Nilai positif jika ini basic_string_view lebih besar dari strv atau ptr

Keterangan

Fungsi compare anggota melakukan perbandingan peka huruf besar/kecil dari semua atau sebagian dari setiap urutan karakter.

Contoh

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

Menyalin paling banyak jumlah karakter tertentu dari posisi terindeks dalam sumber basic_string_view ke array karakter target. Kami menyarankan agar Anda menggunakan fungsi basic_string_view::_Copy_s aman sebagai gantinya.

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

Parameter

ptr
Array karakter target tempat elemen akan disalin.

count
Jumlah karakter yang akan disalin, paling banyak, dari sumber basic_string_view.

offset
Posisi awal di sumber basic_string_view tempat salinan akan dibuat.

Nilai hasil

Jumlah karakter yang disalin.

Keterangan

Karakter null tidak ditambahkan ke akhir salinan.

basic_string_view::_Copy_s

Fungsi salinan CRT aman yang akan digunakan alih-alih copy.

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

Parameter

dest
Array karakter target tempat elemen akan disalin.

dest_size
Ukuran dest.

count Jumlah karakter yang akan disalin, paling banyak, dari string sumber.

_Off
Posisi awal dalam string sumber tempat salinan akan dibuat.

Nilai hasil

Jumlah karakter yang disalin.

Keterangan

Karakter null tidak ditambahkan ke akhir salinan.

Untuk informasi selengkapnya, lihat c-runtime-library/security-features-in-the-crt.

basic_string_view::crbegin

Mengembalikan const_reverse_iterator yang membahas elemen pertama dalam terbalik basic_string_view.

constexpr const_reverse_iterator crbegin() const noexcept;

Nilai hasil

const_reverse_iterator Yang membahas elemen pertama dalam terbalik basic_string_view.

basic_string_view::crend

Sama seperti rend.

constexpr const_reverse_iterator crend() const noexcept;

Nilai hasil

Mengembalikan alamat const_reverse_iterator yang melewati akhir dari terbalik basic_string_view.

basic_string_view::data

Mengembalikan pointer non-pemilik mentah ke urutan karakter const objek yang digunakan untuk membangun basic_string_view.

constexpr value_type *data() const noexcept;

Nilai hasil

Pointer-to-const ke elemen pertama dari urutan karakter.

Keterangan

Penunjuk tidak dapat mengubah karakter.

Urutan basic_string_view karakter belum tentu dihentikan null. Jenis pengembalian untuk data bukan string C yang valid, karena tidak ada karakter null yang ditambahkan. Karakter \0 null tidak memiliki arti khusus dalam objek jenis basic_string_view dan mungkin menjadi bagian basic_string_view dari objek seperti karakter lainnya.

basic_string_view::empty

Menguji apakah berisi basic_string_view karakter atau tidak.

constexpr bool empty() const noexcept;

Nilai hasil

truebasic_string_view jika objek tidak berisi karakter; false jika memiliki setidaknya satu karakter.

Keterangan

Fungsi anggota setara dengan size() == 0.

basic_string_view::end

Mengembalikan akses const_iterator acak yang menunjuk ke satu melewati elemen terakhir.

constexpr const_iterator end() const noexcept;

Nilai hasil

Mengembalikan akses const_iterator acak yang menunjuk ke satu melewati elemen terakhir.

Keterangan

enddigunakan untuk menguji apakah const_iterator telah mencapai akhir .basic_string_view Nilai yang dikembalikan oleh end tidak boleh didereferensikan.

basic_string_view::ends_with

Periksa apakah tampilan string diakhiri dengan akhiran yang ditentukan.

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;

Parameter

c
Akhiran karakter tunggal yang akan dicari.

sv
Tampilan string yang berisi akhiran yang akan dicari.
Anda dapat meneruskan std::basic_string, yang mengonversi ke basic_string_view.

x
String karakter null-terminated yang berisi akhiran untuk dicari.

Nilai hasil

true jika tampilan string diakhiri dengan akhiran yang ditentukan; false Sebaliknya.

Keterangan

ends_with() baru di C++20. Untuk menggunakannya, tentukan opsi pengkompilasi atau yang /std:c++20 lebih baru.

Lihat starts_with untuk memeriksa apakah tampilan string dimulai dengan awalan yang ditentukan.

Contoh

// 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 Mencari dalam arah maju untuk kemunculan pertama karakter atau substring yang cocok dengan urutan karakter yang ditentukan.

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;

Parameter

str
fungsi basic_string_view anggota yang akan dicari.

chVal
Nilai karakter yang fungsi anggotanya akan dicari.

offset
Indeks di mana pencarian akan dimulai.

ptr
String C yang fungsi anggotanya akan dicari.

count
Jumlah karakter dalam ptr, menghitung maju dari karakter pertama.

Nilai hasil

Indeks karakter pertama substring yang dicari ketika berhasil; jika tidak npos.

basic_string_view::find_first_not_of

Mencari karakter pertama yang bukan merupakan elemen dari objek string yang ditentukan basic_string_view atau dapat dikonversi.

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;

Parameter

str
fungsi basic_string_view anggota yang akan dicari.

chVal
Nilai karakter yang fungsi anggotanya akan dicari.

offset
Indeks di mana pencarian akan dimulai.

ptr
String C yang fungsi anggotanya akan dicari.

count
Jumlah karakter, menghitung maju dari karakter pertama, dalam string C yang fungsi anggotanya akan dicari.

Nilai hasil

Indeks karakter pertama substring yang dicari ketika berhasil; jika tidak npos.

basic_string_view::find_first_of

Mencari karakter pertama yang cocok dengan elemen apa pun dari yang ditentukan 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;

Parameter

chVal
Nilai karakter yang fungsi anggotanya akan dicari.

offset
Indeks di mana pencarian akan dimulai.

ptr
String C yang fungsi anggotanya akan dicari.

count
Jumlah karakter, menghitung maju dari karakter pertama, dalam string C yang fungsi anggotanya akan dicari.

str
fungsi basic_string_view anggota yang akan dicari.

Nilai hasil

Indeks karakter pertama substring yang dicari ketika berhasil; jika tidak npos.

basic_string_view::find_last_not_of

Mencari karakter terakhir yang bukan elemen apa pun dari yang ditentukan 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;

Parameter

str
fungsi basic_string_view anggota yang akan dicari.

chVal
Nilai karakter yang fungsi anggotanya akan dicari.

offset
Indeks tempat pencarian selesai.

ptr
String C yang fungsi anggotanya akan dicari.

count
Jumlah karakter, menghitung maju dari karakter pertama, di ptr.

Nilai hasil

Indeks karakter pertama substring yang dicari ketika berhasil; jika tidak string_view::npos.

basic_string_view::find_last_of

Mencari karakter terakhir yang cocok dengan elemen apa pun dari yang ditentukan 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;

Parameter

str
fungsi basic_string_view anggota yang akan dicari.

chVal
Nilai karakter yang fungsi anggotanya akan dicari.

offset
Indeks tempat pencarian selesai.

ptr
String C yang fungsi anggotanya akan dicari.

count
Jumlah karakter, menghitung maju dari karakter pertama, dalam string C yang fungsi anggotanya akan dicari.

Nilai hasil

Indeks karakter terakhir substring yang dicari ketika berhasil; jika tidak npos.

basic_string_view::front

Mengembalikan const_reference ke elemen pertama.

constexpr const_reference front() const;

Nilai hasil

A const_reference ke elemen pertama.

Keterangan

Melempar pengecualian jika basic_string_view kosong.

basic_string_view::length

Mengembalikan jumlah elemen saat ini.

constexpr size_type length() const noexcept;

Keterangan

Fungsi anggota sama sizedengan .

basic_string_view::max_size

Mengembalikan jumlah maksimum karakter yang dapat dimuat basic_string_view .

constexpr size_type max_size() const noexcept;

Nilai hasil

Jumlah maksimum karakter yang dapat dimuat basic_string_view .

Keterangan

Pengecualian jenis length_error dilemparkan ketika operasi menghasilkan basic_string_view dengan panjang lebih besar dari max_size().

basic_string_view::operator=

basic_string_view Menetapkan objek string atau yang dapat dikonversi ke objek lain basic_string_view.

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

Contoh

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

basic_string_view::operator[]

const_reference Menyediakan untuk karakter dengan indeks tertentu.

constexpr const_reference operator[](size_type offset) const;

Parameter

offset
Indeks elemen yang akan dirujuk.

Nilai hasil

A const_reference ke karakter pada posisi yang ditentukan oleh indeks parameter.

Keterangan

Elemen pertama memiliki indeks nol, dan elemen berikut diindeks secara berturut-turut oleh bilangan bulat positif, sehingga basic_string_view panjangnya n memiliki elemen *n*th yang diindeks oleh angka n-1.

operator[] lebih cepat daripada fungsi at anggota untuk menyediakan akses baca ke elemen basic_string_view.

operator[] tidak memeriksa apakah indeks yang diteruskan sebagai argumen valid. Indeks yang tidak valid diteruskan untuk operator[] menghasilkan perilaku yang tidak terdefinisi.

Referensi yang dikembalikan mungkin tidak valid jika data string yang mendasar dimodifikasi atau dihapus oleh objek pemilik.

Saat mengkompilasi dengan _ITERATOR_DEBUG_LEVEL diatur ke 1 atau 2, kesalahan runtime akan terjadi jika Anda mencoba mengakses elemen di luar batas basic_string_view. Untuk informasi selengkapnya, lihat Iterator yang Diperiksa.

basic_string_view::rbegin

Mengembalikan iterator const ke elemen pertama dalam terbalik basic_string_view.

constexpr const_reverse_iterator rbegin() const noexcept;

Nilai hasil

Mengembalikan iterator akses acak ke elemen pertama dalam terbalik basic_string_view, membahas apa yang akan menjadi elemen terakhir dalam yang tidak terbalik basic_string_viewyang sesuai.

Keterangan

rbegin digunakan dengan terbalik basic_string_view seperti begin yang digunakan dengan basic_string_view. rbegin dapat digunakan untuk menginisialisasi iterasi mundur.

basic_string_view::remove_prefix

Memindahkan penunjuk ke depan dengan jumlah elemen yang ditentukan.

constexpr void remove_prefix(size_type n);

Keterangan

Membiarkan data yang mendasar tidak berubah. basic_string_view Memindahkan penunjuk ke depan oleh n elemen dan mengatur anggota data privat size ke size - n.

basic_string_view::remove_suffix

Mengurangi ukuran tampilan dengan jumlah elemen yang ditentukan mulai dari belakang.

constexpr void remove_suffix(size_type n);

Keterangan

Membiarkan data dan penunjuk yang mendasar ke data tersebut tidak berubah. Mengatur anggota data privat size ke size - n.

basic_string_view::rend

Mengembalikan iterator const yang menunjuk ke satu melewati elemen terakhir dalam terbalik basic_string_view.

constexpr reverse_iterator rend() const noexcept;

Nilai hasil

Iterator const akses acak terbalik yang menunjuk ke satu melewati elemen terakhir dalam terbalik basic_string_view.

Keterangan

rend digunakan dengan terbalik basic_string_view seperti end yang digunakan dengan basic_string_view. rend dapat digunakan untuk menguji apakah iterator terbalik telah mencapai akhir basic_string_view. Nilai yang dikembalikan oleh rend tidak boleh didereferensikan.

basic_string_view::rfind

basic_string_view Mencari secara terbalik untuk substring yang cocok dengan urutan karakter tertentu.

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;

Parameter

chVal
Nilai karakter yang fungsi anggotanya akan dicari.

offset
Indeks di mana pencarian akan dimulai.

ptr
String C yang fungsi anggotanya akan dicari.

count
Jumlah karakter, menghitung maju dari karakter pertama, dalam string C yang fungsi anggotanya akan dicari.

str
fungsi basic_string_view anggota yang akan dicari.

Nilai hasil

Indeks karakter pertama substring saat berhasil; jika tidak npos.

basic_string_view::size

Mengembalikan jumlah elemen dalam basic_string_view.

constexpr size_type size() const noexcept;

Nilai hasil

Panjang basic_string_view.

Keterangan

Dapat basic_string_view memodifikasi panjangnya, misalnya dengan remove_prefix dan remove_suffix. Karena ini tidak memodifikasi data string yang mendasar, ukuran basic_string_view data yang mendasar belum tentu merupakan ukuran data yang mendasar.

basic_string_view::starts_with

Periksa apakah tampilan string dimulai dengan awalan yang ditentukan.

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;

Parameter

c
Awalan karakter tunggal yang akan dicari.

sv
Tampilan string yang berisi awalan untuk dicari.
Anda dapat meneruskan std::basic_string, yang mengonversi ke tampilan string.

x
String karakter null-terminated yang berisi awalan yang akan dicari.

Nilai hasil

true jika string dimulai dengan awalan yang ditentukan; false Sebaliknya.

Keterangan

starts_with() baru di C++20. Untuk menggunakannya, tentukan opsi pengkompilasi atau yang std:c++20 lebih baru.

Lihat ends_with untuk melihat apakah string diakhiri dengan akhiran.

Contoh

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

Mengembalikan basic_string_view yang mewakili (paling banyak) jumlah karakter yang ditentukan dari posisi yang ditentukan.

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

Parameter

offset
Indeks yang menemukan elemen pada posisi dari mana salinan dibuat, dengan nilai default 0.

count
Jumlah karakter yang akan disertakan dalam substring, jika ada.

Nilai hasil

Objek basic_string_view yang mewakili subsekuen elemen yang ditentukan.

basic_string_view::swap

Bertukar dua basic_string_views, dengan kata lain penunjuk ke data string yang mendasar, dan nilai ukuran.

constexpr void swap(basic_string_view& sv) noexcept;

Parameter

sv
Sumber basic_string_view yang nilai penunjuk dan ukurannya akan ditukar dengan tujuan basic_string_view.

Baca juga

<string_view>
Keamanan utas di Pustaka Standar C++