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.
string_view
untuk elemen jenischar
wstring_view
Untukwchar_t
u16string_view
untukchar16_t
u32string_view
untukchar32_t
.
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_view s 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_with C++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_with C++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_suffix
bahwa 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 daristrv
atauptr
- Nol jika dua urutan karakter sama
- Nilai positif jika ini
basic_string_view
lebih besar daristrv
atauptr
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
true
basic_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
end
digunakan 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 size
dengan .
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_view
yang 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_view
s, 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk