Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas concurrent_vector adalah kelas kontainer urutan yang memungkinkan akses acak ke elemen apa pun. Ini memungkinkan penambalan yang aman konkurensi, akses elemen, akses iterator, dan operasi traversal iterator. Di sini, konkurensi-aman berarti pointer atau iterator selalu valid. Ini bukan jaminan inisialisasi elemen, atau urutan traversal tertentu.
Sintaks
template<typename T, class _Ax>
class concurrent_vector: protected details::_Allocator_base<T,
_Ax>,
private details::_Concurrent_vector_base_v4;
Parameter
T
Jenis data elemen yang akan disimpan di vektor.
_Kapak
Jenis yang mewakili objek alokator tersimpan yang merangkum detail tentang alokasi dan alokasi memori untuk vektor bersamaan. Argumen ini bersifat opsional dan nilai defaultnya adalah allocator<T>.
Anggota
Typedef Publik
| Nama | Deskripsi |
|---|---|
allocator_type |
Jenis yang mewakili kelas alokator untuk vektor bersamaan. |
const_iterator |
Jenis yang menyediakan iterator akses acak yang dapat membaca const elemen dalam vektor bersamaan. |
const_pointer |
Jenis yang menyediakan penunjuk ke const elemen dalam vektor bersamaan. |
const_reference |
Jenis yang menyediakan referensi ke elemen yang const disimpan dalam vektor bersamaan const untuk membaca dan melakukan operasi. |
const_reverse_iterator |
Jenis yang menyediakan iterator akses acak yang dapat membaca elemen apa pun const di vektor bersamaan. |
difference_type |
Jenis yang menyediakan jarak yang ditandatangani antara dua elemen dalam vektor bersamaan. |
iterator |
Jenis yang menyediakan iterator akses acak yang dapat membaca elemen apa pun dalam vektor bersamaan. Modifikasi elemen yang menggunakan iterator tidak aman konkurensi. |
pointer |
Jenis yang menyediakan penunjuk ke elemen dalam vektor bersamaan. |
reference |
Jenis yang menyediakan referensi ke elemen yang disimpan dalam vektor bersamaan. |
reverse_iterator |
Jenis yang menyediakan iterator akses acak yang dapat membaca elemen apa pun dalam vektor bersamaan terbalik. Modifikasi elemen yang menggunakan iterator tidak aman konkurensi. |
size_type |
Jenis yang menghitung jumlah elemen dalam vektor bersamaan. |
value_type |
Jenis yang mewakili jenis data yang disimpan dalam vektor bersamaan. |
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
| concurrent_vector | Kelebihan beban. Membangun vektor bersamaan. |
| ~concurrent_vector Destructor | Menghapus semua elemen dan menghancurkan vektor bersamaan ini. |
Metode Publik
| Nama | Deskripsi |
|---|---|
| Menetapkan | Kelebihan beban. Menghapus elemen vektor bersamaan dan menetapkan salinan _N nilai _Item, atau yang ditentukan oleh rentang iterator [ _Begin, _End). Metode ini tidak aman konkurensi. |
| di | Kelebihan beban. Menyediakan akses ke elemen pada indeks yang diberikan di vektor bersamaan. Metode ini aman konkurensi untuk operasi baca, dan juga saat menumbuhkan vektor, selama Anda telah memastikan bahwa nilainya _Index kurang dari ukuran vektor bersamaan. |
| belakang | Kelebihan beban. Mengembalikan referensi atau const referensi ke elemen terakhir dalam vektor bersamaan. Jika vektor bersamaan kosong, nilai pengembalian tidak ditentukan. Metode ini aman konkurensi. |
| mulai | Kelebihan beban. Mengembalikan iterator jenis iterator atau const_iterator ke awal vektor bersamaan. Metode ini aman konkurensi. |
| kapasitas | Mengembalikan ukuran maksimum tempat vektor bersamaan dapat tumbuh tanpa harus mengalokasikan lebih banyak memori. Metode ini aman konkurensi. |
| cbegin | Mengembalikan iterator jenis const_iterator ke awal vektor bersamaan. Metode ini aman konkurensi. |
| cend | Mengembalikan iterator jenis const_iterator ke akhir vektor bersamaan. Metode ini aman konkurensi. |
| hapus | Menghapus semua elemen dalam vektor bersamaan. Metode ini tidak aman konkurensi. |
| crbegin | Mengembalikan iterator jenis const_reverse_iterator ke awal vektor bersamaan. Metode ini aman konkurensi. |
| crend | Mengembalikan iterator jenis const_reverse_iterator ke akhir vektor bersamaan. Metode ini aman konkurensi. |
| kosong | Menguji apakah vektor bersamaan kosong pada saat metode ini dipanggil. Metode ini aman konkurensi. |
| akhir | Kelebihan beban. Mengembalikan iterator jenis iterator atau const_iterator ke akhir vektor bersamaan. Metode ini aman konkurensi. |
| depan | Kelebihan beban. Mengembalikan referensi atau const referensi ke elemen pertama dalam vektor bersamaan. Jika vektor bersamaan kosong, nilai pengembalian tidak ditentukan. Metode ini aman konkurensi. |
| get_allocator | Mengembalikan salinan alokator yang digunakan untuk membangun vektor bersamaan. Metode ini aman konkurensi. |
| grow_by | Kelebihan beban. Tumbuh vektor bersamaan ini berdasarkan _Delta elemen. Metode ini aman konkurensi. |
| grow_to_at_least | Tumbuh vektor bersamaan ini sampai memiliki setidaknya _N elemen. Metode ini aman konkurensi. |
| max_size | Mengembalikan jumlah maksimum elemen yang dapat ditahan vektor bersamaan. Metode ini aman konkurensi. |
| push_back | Kelebihan beban. Menambahkan item yang diberikan ke akhir vektor bersamaan. Metode ini aman konkurensi. |
| rbegin | Kelebihan beban. Mengembalikan iterator jenis reverse_iterator atau const_reverse_iterator ke awal vektor bersamaan. Metode ini aman konkurensi. |
| rend | Kelebihan beban. Mengembalikan iterator jenis reverse_iterator atau const_reverse_iterator ke akhir vektor bersamaan. Metode ini aman konkurensi. |
| cadangan | Mengalokasikan ruang yang cukup untuk menumbuhkan vektor bersamaan ke ukuran _N tanpa harus mengalokasikan lebih banyak memori nanti. Metode ini tidak aman konkurensi. |
| Mengubah ukuran | Kelebihan beban. Mengubah ukuran vektor bersamaan ke ukuran yang diminta, menghapus, atau menambahkan elemen seperlunya. Metode ini tidak aman konkurensi. |
| shrink_to_fit | Memampatkan representasi internal vektor bersamaan untuk mengurangi fragmentasi dan mengoptimalkan penggunaan memori. Metode ini tidak aman konkurensi. |
| ukuran | Mengembalikan jumlah elemen dalam vektor bersamaan. Metode ini aman konkurensi. |
| tukar | Menukar isi dua vektor bersamaan. Metode ini tidak aman konkurensi. |
Operator Publik
| Nama | Deskripsi |
|---|---|
| operator | Kelebihan beban. Menyediakan akses ke elemen pada indeks yang diberikan di vektor bersamaan. Metode ini aman konkurensi untuk operasi baca, dan juga saat menumbuhkan vektor, selama Anda telah memastikan bahwa nilainya _Index kurang dari ukuran vektor bersamaan. |
| operator = | Kelebihan beban. Menetapkan isi objek lain concurrent_vector untuk objek ini. Metode ini tidak aman konkurensi. |
Keterangan
Untuk informasi terperinci tentang concurrent_vector kelas, lihat Kontainer dan Objek Paralel.
Hierarki Warisan
_Concurrent_vector_base_v4
_Allocator_base
concurrent_vector
Persyaratan
Header: concurrent_vector.h
Namespace: konkurensi
menetapkan
Menghapus elemen vektor bersamaan dan menetapkan salinan _N nilai _Item, atau yang ditentukan oleh rentang iterator [ _Begin, _End). Metode ini tidak aman konkurensi.
void assign(
size_type _N,
const_reference _Item);
template<class _InputIterator>
void assign(_InputIterator _Begin,
_InputIterator _End);
Parameter
_InputIterator
Jenis iterator yang ditentukan.
_N
Jumlah item yang akan disalin ke vektor bersamaan.
_Benda
Referensi ke nilai yang digunakan untuk mengisi vektor bersamaan.
_Mulai
Iterator ke elemen pertama dari rentang sumber.
_Ujung
Iterator ke satu melewati elemen terakhir dari rentang sumber.
Keterangan
assign tidak aman konkurensi. Anda harus memastikan bahwa tidak ada utas lain yang memanggil metode pada vektor bersamaan ketika Anda memanggil metode ini.
di
Menyediakan akses ke elemen pada indeks yang diberikan di vektor bersamaan. Metode ini aman konkurensi untuk operasi baca, dan juga saat menumbuhkan vektor, selama Anda telah memastikan bahwa nilainya _Index kurang dari ukuran vektor bersamaan.
reference at(size_type _Index);
const_reference at(size_type _Index) const;
Parameter
_Indeks
Indeks elemen yang akan diambil.
Tampilkan Nilai
Referensi ke item pada indeks yang diberikan.
Keterangan
Versi fungsi at yang mengembalikan non-referensi const tidak dapat digunakan untuk menulis secara bersamaan ke elemen dari utas yang berbeda. Objek sinkronisasi yang berbeda harus digunakan untuk menyinkronkan operasi baca dan tulis bersamaan ke elemen data yang sama.
Metode ini melemparkan out_of_range jika _Index lebih besar dari atau sama dengan ukuran vektor bersamaan, dan range_error jika indeks adalah untuk bagian vektor yang rusak. Untuk detail tentang bagaimana vektor dapat menjadi rusak, lihat Kontainer dan Objek Paralel.
kembali
Mengembalikan referensi atau const referensi ke elemen terakhir dalam vektor bersamaan. Jika vektor bersamaan kosong, nilai pengembalian tidak ditentukan. Metode ini aman konkurensi.
reference back();
const_reference back() const;
Tampilkan Nilai
Referensi atau const referensi ke elemen terakhir di vektor bersamaan.
mulai
Mengembalikan iterator jenis iterator atau const_iterator ke awal vektor bersamaan. Metode ini aman konkurensi.
iterator begin();
const_iterator begin() const;
Tampilkan Nilai
Iterator jenis iterator atau const_iterator ke awal vektor bersamaan.
kapasitas
Mengembalikan ukuran maksimum tempat vektor bersamaan dapat tumbuh tanpa harus mengalokasikan lebih banyak memori. Metode ini aman konkurensi.
size_type capacity() const;
Tampilkan Nilai
Ukuran maksimum tempat vektor bersamaan dapat tumbuh tanpa harus mengalokasikan lebih banyak memori.
Keterangan
Tidak seperti Pustaka vectorStandar C++, concurrent_vector objek tidak memindahkan elemen yang ada jika mengalokasikan lebih banyak memori.
cbegin
Mengembalikan iterator jenis const_iterator ke awal vektor bersamaan. Metode ini aman konkurensi.
const_iterator cbegin() const;
Tampilkan Nilai
Iterator jenis const_iterator ke awal vektor bersamaan.
cend
Mengembalikan iterator jenis const_iterator ke akhir vektor bersamaan. Metode ini aman konkurensi.
const_iterator cend() const;
Tampilkan Nilai
Iterator jenis const_iterator ke akhir vektor bersamaan.
hapus
Menghapus semua elemen dalam vektor bersamaan. Metode ini tidak aman konkurensi.
void clear();
Keterangan
clear tidak aman konkurensi. Anda harus memastikan bahwa tidak ada utas lain yang memanggil metode pada vektor bersamaan ketika Anda memanggil metode ini.
clear tidak membebaskan array internal. Untuk membebaskan array internal, panggil fungsi shrink_to_fit setelah clear.
concurrent_vector
Membangun vektor bersamaan.
explicit concurrent_vector(
const allocator_type& _Al = allocator_type());
concurrent_vector(
const concurrent_vector& _Vector);
template<class M>
concurrent_vector(
const concurrent_vector<T,
M>& _Vector,
const allocator_type& _Al = allocator_type());
concurrent_vector(
concurrent_vector&& _Vector);
explicit concurrent_vector(
size_type _N);
concurrent_vector(
size_type _N,
const_reference _Item,
const allocator_type& _Al = allocator_type());
template<class _InputIterator>
concurrent_vector(_InputIterator _Begin,
_InputIterator _End,
const allocator_type& _Al = allocator_type());
Parameter
M
Jenis alokator vektor sumber.
_InputIterator
Jenis iterator input.
_Al
Kelas alokator untuk digunakan dengan objek ini.
_Vektor
Objek sumber concurrent_vector untuk menyalin atau memindahkan elemen.
_N
Kapasitas concurrent_vector awal objek.
_Benda
Nilai elemen dalam objek yang dibangun.
_Mulai
Posisi elemen pertama dalam rentang elemen yang akan disalin.
_Ujung
Posisi elemen pertama di luar rentang elemen yang akan disalin.
Keterangan
Semua konstruktor menyimpan objek _Al alokator dan menginisialisasi vektor.
Konstruktor pertama menentukan vektor awal kosong dan secara eksplisit menentukan jenis alokator. yang akan digunakan.
Konstruktor kedua dan ketiga menentukan salinan vektor _Vectorbersamaan .
Konstruktor keempat menentukan pemindahan vektor _Vectorbersamaan .
Konstruktor kelima menentukan pengulangan jumlah (_N) elemen tertentu dari nilai default untuk kelas T.
Konstruktor keenam menentukan pengulangan_N () elemen nilai _Item.
Konstruktor terakhir menentukan nilai yang disediakan oleh rentang iterator [ _Begin, _End).
~concurrent_vector
Menghapus semua elemen dan menghancurkan vektor bersamaan ini.
~concurrent_vector();
crbegin
Mengembalikan iterator jenis const_reverse_iterator ke awal vektor bersamaan. Metode ini aman konkurensi.
const_reverse_iterator crbegin() const;
Tampilkan Nilai
Iterator jenis const_reverse_iterator ke awal vektor bersamaan.
crend
Mengembalikan iterator jenis const_reverse_iterator ke akhir vektor bersamaan. Metode ini aman konkurensi.
const_reverse_iterator crend() const;
Tampilkan Nilai
Iterator jenis const_reverse_iterator ke akhir vektor bersamaan.
kosong
Menguji apakah vektor bersamaan kosong pada saat metode ini dipanggil. Metode ini aman konkurensi.
bool empty() const;
Tampilkan Nilai
true jika vektor kosong saat fungsi dipanggil, false jika tidak.
akhir
Mengembalikan iterator jenis iterator atau const_iterator ke akhir vektor bersamaan. Metode ini aman konkurensi.
iterator end();
const_iterator end() const;
Tampilkan Nilai
Iterator jenis iterator atau const_iterator ke akhir vektor bersamaan.
depan
Mengembalikan referensi atau const referensi ke elemen pertama dalam vektor bersamaan. Jika vektor bersamaan kosong, nilai pengembalian tidak ditentukan. Metode ini aman konkurensi.
reference front();
const_reference front() const;
Tampilkan Nilai
Referensi atau const referensi ke elemen pertama dalam vektor bersamaan.
get_allocator
Mengembalikan salinan alokator yang digunakan untuk membangun vektor bersamaan. Metode ini aman konkurensi.
allocator_type get_allocator() const;
Tampilkan Nilai
Salinan alokator yang digunakan untuk membuat concurrent_vector objek.
grow_by
Tumbuh vektor bersamaan ini berdasarkan _Delta elemen. Metode ini aman konkurensi.
iterator grow_by(
size_type _Delta);
iterator grow_by(
size_type _Delta,
const_reference _Item);
Parameter
_Delta
Jumlah elemen yang akan ditambahkan ke objek.
_Benda
Nilai untuk menginisialisasi elemen baru dengan.
Tampilkan Nilai
Iterator untuk item pertama ditambahkan.
Keterangan
Jika _Item tidak ditentukan, elemen baru dibuat secara default.
grow_to_at_least
Tumbuh vektor bersamaan ini sampai memiliki setidaknya _N elemen. Metode ini aman konkurensi.
iterator grow_to_at_least(size_type _N);
Parameter
_N
Ukuran minimum baru untuk concurrent_vector objek.
Tampilkan Nilai
Iterator yang menunjuk ke awal urutan yang ditambahkan, atau ke elemen pada indeks _N jika tidak ada elemen yang ditambahkan.
ukuran_maksimum
Mengembalikan jumlah maksimum elemen yang dapat ditahan vektor bersamaan. Metode ini aman konkurensi.
size_type max_size() const;
Tampilkan Nilai
Jumlah maksimum elemen yang dapat ditahan concurrent_vector objek.
operator=
Menetapkan isi objek lain concurrent_vector untuk objek ini. Metode ini tidak aman konkurensi.
concurrent_vector& operator= (
const concurrent_vector& _Vector);
template<class M>
concurrent_vector& operator= (
const concurrent_vector<T, M>& _Vector);
concurrent_vector& operator= (
concurrent_vector&& _Vector);
Parameter
M
Jenis alokator vektor sumber.
_Vektor
Objek sumber concurrent_vector .
Tampilkan Nilai
Referensi ke objek ini concurrent_vector .
operator[]
Menyediakan akses ke elemen pada indeks yang diberikan di vektor bersamaan. Metode ini aman konkurensi untuk operasi baca, dan juga saat menumbuhkan vektor, selama Anda telah memastikan bahwa nilainya _Index kurang dari ukuran vektor bersamaan.
reference operator[](size_type _index);
const_reference operator[](size_type _index) const;
Parameter
_Indeks
Indeks elemen yang akan diambil.
Tampilkan Nilai
Referensi ke item pada indeks yang diberikan.
Keterangan
Versi operator [] yang mengembalikan non-referensi const tidak dapat digunakan untuk menulis secara bersamaan ke elemen dari utas yang berbeda. Objek sinkronisasi yang berbeda harus digunakan untuk menyinkronkan operasi baca dan tulis bersamaan ke elemen data yang sama.
Tidak ada pemeriksaan batas yang dilakukan untuk memastikan bahwa itu adalah indeks yang _Index valid ke vektor bersamaan.
push_back
Menambahkan item yang diberikan ke akhir vektor bersamaan. Metode ini aman konkurensi.
iterator push_back(const_reference _Item);
iterator push_back(T&& _Item);
Parameter
_Benda
Nilai yang akan ditambahkan.
Tampilkan Nilai
Iterator untuk item ditambahkan.
rbegin
Mengembalikan iterator jenis reverse_iterator atau const_reverse_iterator ke awal vektor bersamaan. Metode ini aman konkurensi.
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
Tampilkan Nilai
Iterator jenis reverse_iterator atau const_reverse_iterator ke awal vektor bersamaan.
rend
Mengembalikan iterator jenis reverse_iterator atau const_reverse_iterator ke akhir vektor bersamaan. Metode ini aman konkurensi.
reverse_iterator rend();
const_reverse_iterator rend() const;
Tampilkan Nilai
Iterator jenis reverse_iterator atau const_reverse_iterator ke akhir vektor bersamaan.
reserve
Mengalokasikan ruang yang cukup untuk menumbuhkan vektor bersamaan ke ukuran _N tanpa harus mengalokasikan lebih banyak memori nanti. Metode ini tidak aman konkurensi.
void reserve(size_type _N);
Parameter
_N
Jumlah elemen yang akan dicadangkan ruangnya.
Keterangan
reserve tidak aman konkurensi. Anda harus memastikan bahwa tidak ada utas lain yang memanggil metode pada vektor bersamaan ketika Anda memanggil metode ini. Kapasitas vektor bersamaan setelah metode kembali mungkin lebih besar dari reservasi yang diminta.
ubah ukuran
Mengubah ukuran vektor bersamaan ke ukuran yang diminta, menghapus, atau menambahkan elemen seperlunya. Metode ini tidak aman konkurensi.
void resize(
size_type _N);
void resize(
size_type _N,
const T& val);
Parameter
_N
Ukuran baru concurrent_vector.
Val
Nilai elemen baru ditambahkan ke vektor jika ukuran baru lebih besar dari ukuran aslinya. Jika nilai dihilangkan, objek baru diberi nilai default untuk jenisnya.
Keterangan
Jika ukuran kontainer kurang dari ukuran yang diminta, elemen ditambahkan ke vektor hingga mencapai ukuran yang diminta. Jika ukuran kontainer lebih besar dari ukuran yang diminta, elemen yang paling dekat dengan akhir kontainer dihapus sampai kontainer mencapai ukuran _N. Jika ukuran kontainer saat ini sama dengan ukuran yang diminta, tidak ada tindakan yang diambil.
resize tidak aman konkurensi. Anda harus memastikan bahwa tidak ada utas lain yang memanggil metode pada vektor bersamaan ketika Anda memanggil metode ini.
shrink_to_fit
Memampatkan representasi internal vektor bersamaan untuk mengurangi fragmentasi dan mengoptimalkan penggunaan memori. Metode ini tidak aman konkurensi.
void shrink_to_fit();
Keterangan
Metode ini akan mengalokasikan ulang elemen pemindahan memori secara internal, membatalkan semua iterator.
shrink_to_fit tidak aman konkurensi. Anda harus memastikan bahwa tidak ada utas lain yang memanggil metode pada vektor bersamaan saat Anda memanggil fungsi ini.
ukuran
Mengembalikan jumlah elemen dalam vektor bersamaan. Metode ini aman konkurensi.
size_type size() const;
Tampilkan Nilai
Jumlah elemen dalam objek ini concurrent_vector .
Keterangan
Ukuran yang dikembalikan dijamin untuk menyertakan semua elemen yang ditambahkan oleh panggilan ke fungsi push_back, atau menumbuhkan operasi yang telah selesai sebelum memanggil metode ini. Namun, ini juga dapat mencakup elemen yang dialokasikan tetapi masih dalam pembangunan dengan panggilan bersamaan ke salah satu metode pertumbuhan.
pertukaran
Menukar isi dua vektor bersamaan. Metode ini tidak aman konkurensi.
void swap(concurrent_vector& _Vector);
Parameter
_Vektor
Objek concurrent_vector untuk menukar konten dengan.