Bagikan melalui


vector kelas

Kelas vektor Pustaka Standar C++ adalah templat kelas untuk kontainer urutan. Vektor menyimpan elemen jenis tertentu dalam pengaturan linier, dan memungkinkan akses acak cepat ke elemen apa pun. Vektor adalah kontainer pilihan untuk urutan ketika performa akses acak berada pada premium.

Sintaks

template <class Type, class Allocator = allocator<Type>>
class vector;

Parameter

Type
Jenis data elemen yang akan disimpan di vektor.

Allocator
Jenis yang mewakili objek alokator tersimpan yang merangkum detail tentang alokasi vektor dan alokasi memori. Argumen ini bersifat opsional dan nilai defaultnya adalah allocator<Type>.

Keterangan

Vektor memungkinkan penyisipan dan penghapusan waktu konstan di akhir urutan. Menyisipkan atau menghapus elemen di tengah vektor memerlukan waktu linier. Kontainer deque kelas lebih cepat pada penyisipan dan penghapusan di awal dan akhir urutan. Kontainer list kelas lebih cepat pada penyisipan dan penghapusan di lokasi mana pun dalam urutan.

Realokasi vektor terjadi ketika fungsi anggota harus meningkatkan urutan yang terkandung dalam objek vektor di luar kapasitas penyimpanannya saat ini. Penyisipan dan penghapusan lainnya dapat mengubah berbagai alamat penyimpanan dalam urutan. Dalam semua kasus seperti itu, iterator atau referensi yang menunjuk pada bagian urutan yang diubah menjadi tidak valid. Jika tidak ada realokasi yang terjadi, hanya iterator dan referensi sebelum titik penyisipan/penghapusan tetap valid.

Kelas vector<bool> ini adalah spesialisasi penuh dari vektor templat kelas untuk elemen jenis bool. Ini memiliki alokator untuk jenis yang mendasar yang digunakan oleh spesialisasi.

Kelas vector<bool> referensi adalah kelas berlapis yang objeknya dapat memberikan referensi ke elemen (bit tunggal) dalam vector<bool> objek.

Anggota

Konstruktor

Nama Deskripsi
vector Membangun vektor dengan ukuran tertentu atau dengan elemen nilai tertentu atau dengan spesifik allocator atau sebagai salinan beberapa vektor lainnya.

Typedefs

Nama Deskripsi
allocator_type Jenis yang mewakili allocator kelas untuk objek vektor.
const_iterator Jenis yang menyediakan iterator akses acak yang dapat membaca const elemen di vektor.
const_pointer Jenis yang menyediakan penunjuk ke const elemen di vektor.
const_reference Jenis yang menyediakan referensi ke elemen yang const disimpan dalam vektor. Ini digunakan untuk membaca dan melakukan const operasi.
const_reverse_iterator Jenis yang menyediakan iterator akses acak yang dapat membaca elemen apa pun const di vektor.
difference_type Jenis yang menyediakan perbedaan antara alamat dua elemen dalam vektor.
iterator Jenis yang menyediakan iterator akses acak yang dapat membaca atau memodifikasi elemen apa pun di vektor.
pointer Jenis yang menyediakan penunjuk ke elemen di vektor.
reference Jenis yang menyediakan referensi ke elemen yang disimpan dalam vektor.
reverse_iterator Jenis yang menyediakan iterator akses acak yang dapat membaca atau memodifikasi elemen apa pun dalam vektor terbalik.
size_type Jenis yang menghitung jumlah elemen dalam vektor.
value_type Jenis yang mewakili jenis data yang disimpan dalam vektor.

Fungsi

Nama Deskripsi
assign Menghapus vektor dan menyalin elemen yang ditentukan ke vektor kosong.
at Mengembalikan referensi ke elemen di lokasi tertentu di vektor.
back Mengembalikan referensi ke elemen terakhir vektor.
begin Mengembalikan iterator akses acak ke elemen pertama di vektor.
capacity Mengembalikan jumlah elemen yang dapat dimuat vektor tanpa mengalokasikan lebih banyak penyimpanan.
cbegin Mengembalikan iterator const akses acak ke elemen pertama di vektor.
cend Mengembalikan iterator const akses acak yang menunjuk tepat di luar akhir vektor.
crbegin Mengembalikan iterator const ke elemen pertama dalam vektor terbalik.
crend Mengembalikan iterator const ke akhir vektor terbalik.
clear Menghapus elemen vektor.
data Mengembalikan penunjuk ke elemen pertama dalam vektor.
emplace Menyisipkan elemen yang dibangun di tempat ke vektor pada posisi tertentu.
emplace_back Menambahkan elemen yang dibangun di tempat ke akhir vektor.
empty Menguji apakah kontainer vektor kosong.
end Mengembalikan iterator akses acak yang menunjuk ke akhir vektor.
erase Menghapus elemen atau rentang elemen dalam vektor dari posisi yang ditentukan.
front Mengembalikan referensi ke elemen pertama dalam vektor.
get_allocator Mengembalikan objek ke kelas yang allocator digunakan oleh vektor.
insert Menyisipkan elemen atau banyak elemen ke dalam vektor pada posisi yang ditentukan.
max_size Mengembalikan panjang maksimum vektor.
pop_back Menghapus elemen di akhir vektor.
push_back Tambahkan elemen ke akhir vektor.
rbegin Mengembalikan iterator ke elemen pertama dalam vektor terbalik.
rend Mengembalikan iterator ke akhir vektor terbalik.
reserve Mencadangkan panjang penyimpanan minimum untuk objek vektor.
resize Menentukan ukuran baru untuk vektor.
shrink_to_fit Membuang kelebihan kapasitas.
size Mengembalikan jumlah elemen dalam vektor.
swap Menukar elemen dari dua vektor.

Operator

Nama Deskripsi
operator[] Mengembalikan referensi ke elemen vektor pada posisi tertentu.
operator= Mengganti elemen vektor dengan salinan vektor lain.

allocator_type

Jenis yang mewakili kelas alokator untuk objek vektor.

typedef Allocator allocator_type;

Keterangan

allocator_type adalah sinonim untuk parameter Allocatortemplat .

Contoh

Lihat contoh untuk get_allocator contoh yang menggunakan allocator_type.

assign

Menghapus vektor dan menyalin elemen yang ditentukan ke vektor kosong.

void assign(size_type count, const Type& value);
void assign(initializer_list<Type> init_list);

template <class InputIterator>
void assign(InputIterator first, InputIterator last);

Parameter

first
Posisi elemen pertama dalam rentang elemen yang akan disalin.

last
Posisi elemen pertama di luar rentang elemen yang akan disalin.

count
Jumlah salinan elemen yang dimasukkan ke dalam vektor.

value
Nilai elemen yang dimasukkan ke dalam vektor.

init_list
initializer_list berisi elemen yang akan disisipkan.

Keterangan

Pertama, assign menghapus elemen yang ada dalam vektor. Kemudian, assign menyisipkan rentang elemen tertentu dari vektor asli ke dalam vektor, atau menyisipkan salinan elemen nilai baru yang ditentukan ke dalam vektor.

Contoh

// vector_assign.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1, v2, v3;

    v1.push_back(10);
    v1.push_back(20);
    v1.push_back(30);
    v1.push_back(40);
    v1.push_back(50);

    cout << "v1 = ";
    for (auto& v : v1)
    {
        cout << v << " ";
    }
    cout << endl;

    v2.assign(v1.begin(), v1.end());
    cout << "v2 = ";
    for (auto& v : v2)
    {
        cout << v << " ";
    }
    cout << endl;

    v3.assign(7, 4);
    cout << "v3 = ";
    for (auto& v : v3)
    {
        cout << v << " ";
    }
    cout << endl;

    v3.assign({ 5, 6, 7 });
    cout << "v3 = ";
    for (auto& v : v3)
    {
        cout << v << " ";
    }
    cout << endl;
}
v1 = 10 20 30 40 50
v2 = 10 20 30 40 50
v3 = 4 4 4 4 4 4 4
v3 = 5 6 7

at

Mengembalikan referensi ke elemen di lokasi tertentu di vektor.

reference at(size_type position);

const_reference at(size_type position) const;

Parameter

position
Subskrip atau nomor posisi elemen yang akan dirujuk di vektor.

Nilai hasil

Referensi ke elemen yang di-subskrip dalam argumen. Jika position lebih besar dari ukuran vektor, at melemparkan pengecualian.

Keterangan

Jika nilai at pengembalian ditetapkan ke const_reference, objek vektor tidak dapat dimodifikasi. Jika nilai at pengembalian ditetapkan ke reference, objek vektor dapat dimodifikasi.

Contoh

// vector_at.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(10);
    v1.push_back(20);

    const int &i = v1.at(0);
    int &j = v1.at(1);
    cout << "The first element is " << i << endl;
    cout << "The second element is " << j << endl;
}
The first element is 10
The second element is 20

back

Mengembalikan referensi ke elemen terakhir vektor.

reference back();

const_reference back() const;

Nilai hasil

Elemen terakhir dari vektor. Jika vektor kosong, nilai yang dikembalikan tidak ditentukan.

Keterangan

Jika nilai back pengembalian ditetapkan ke const_reference, objek vektor tidak dapat dimodifikasi. Jika nilai back pengembalian ditetapkan ke reference, objek vektor dapat dimodifikasi.

Saat dikompilasi dengan menggunakan _ITERATOR_DEBUG_LEVEL yang didefinisikan sebagai 1 atau 2, kesalahan runtime terjadi jika Anda mencoba mengakses elemen di vektor kosong. Untuk informasi selengkapnya, lihat Iterator yang diperiksa.

Contoh

// vector_back.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(10);
    v1.push_back(11);

    int& i = v1.back();
    const int& ii = v1.front();

    cout << "The last integer of v1 is " << i << endl;
    i--;
    cout << "The next-to-last integer of v1 is " << ii << endl;
}
The last integer of v1 is 11
The next-to-last integer of v1 is 10

begin

Mengembalikan iterator akses acak ke elemen pertama di vektor.

const_iterator begin() const;

iterator begin();

Nilai hasil

Iterator akses acak yang menangani elemen pertama di vector atau ke lokasi berhasil kosong vector. Selalu bandingkan nilai yang dikembalikan dengan vector::end untuk memastikan nilai tersebut valid.

Keterangan

Jika nilai begin pengembalian ditetapkan ke vector::const_iterator, vector objek tidak dapat dimodifikasi. Jika nilai begin pengembalian ditetapkan ke vector::iterator, vector objek dapat dimodifikasi.

Contoh

// vector_begin.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> c1;
    vector<int>::iterator c1_Iter;
    vector<int>::const_iterator c1_cIter;

    c1.push_back(1);
    c1.push_back(2);

    cout << "The vector c1 contains elements:";
    c1_Iter = c1.begin();
    for (; c1_Iter != c1.end(); c1_Iter++)
    {
        cout << " " << *c1_Iter;
    }
    cout << endl;

    cout << "The vector c1 now contains elements:";
    c1_Iter = c1.begin();
    *c1_Iter = 20;
    for (; c1_Iter != c1.end(); c1_Iter++)
    {
        cout << " " << *c1_Iter;
    }
    cout << endl;

    // The following line would be an error because iterator is const
    // *c1_cIter = 200;
}
The vector c1 contains elements: 1 2
The vector c1 now contains elements: 20 2

capacity

Mengembalikan jumlah elemen yang dapat dimuat vektor tanpa mengalokasikan lebih banyak penyimpanan.

size_type capacity() const;

Nilai hasil

Panjang penyimpanan saat ini yang dialokasikan untuk vektor.

Keterangan

Fungsi resize anggota akan lebih efisien jika memori yang cukup dialokasikan untuk mengakomodasinya. Gunakan fungsi reserve anggota untuk menentukan jumlah memori yang dialokasikan.

Contoh

// vector_capacity.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(1);
    cout << "The length of storage allocated is "
        << v1.capacity() << "." << endl;

    v1.push_back(2);
    cout << "The length of storage allocated is now "
        << v1.capacity() << "." << endl;
}
The length of storage allocated is 1.
The length of storage allocated is now 2.

cbegin

Mengembalikan iterator const yang membahas elemen pertama dalam rentang.

const_iterator cbegin() const;

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()).

Keterangan

Dengan nilai cbeginpengembalian , elemen dalam rentang tidak dapat dimodifikasi.

Anda dapat menggunakan fungsi anggota ini sebagai pengganti begin() fungsi anggota untuk menjamin bahwa nilai yang dikembalikan adalah const_iterator. Biasanya, ini digunakan dengan kata kunci pengurangan auto jenis, seperti yang ditunjukkan dalam contoh berikut. Dalam contoh, pertimbangkan Container untuk menjadi kontainer yang dapat dimodifikasi (non- const) dari segala jenis yang mendukung begin() dan cbegin().

auto i1 = Container.begin();
// i1 is Container<T>::iterator

auto i2 = Container.cbegin();
// i2 is Container<T>::const_iterator

cend

Mengembalikan const iterator past-the-end yang menunjuk ke elemen mengikuti elemen terakhir vektor.

const_iterator cend() const;

Nilai hasil

Iterator const past-the-end untuk vektor. Ini menunjuk ke elemen mengikuti elemen terakhir vektor. Elemen itu adalah tempat penampung dan tidak boleh didereferensikan. Hanya gunakan untuk perbandingan. Jika vektor kosong, maka vector::cend() == vector::cbegin().

Keterangan

cend digunakan untuk menguji apakah iterator telah melewati akhir rentangnya.

Anda dapat menggunakan fungsi anggota ini sebagai pengganti end() fungsi anggota untuk menjamin bahwa nilai yang dikembalikan adalah const_iterator. Biasanya, ini digunakan dengan kata kunci pengurangan auto jenis, seperti yang ditunjukkan dalam contoh berikut. Dalam contoh, pertimbangkan Container untuk menjadi kontainer yang dapat dimodifikasi (non- const) dari segala jenis yang mendukung end() dan cend().

auto i1 = Container.end();
// i1 is Container<T>::iterator

auto i2 = Container.cend();
// i2 is Container<T>::const_iterator

Nilai yang dikembalikan oleh cend tidak boleh didereferensikan. Hanya gunakan untuk perbandingan.

clear

Menghapus elemen vektor.

void clear();

Contoh

// vector_clear.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(10);
    v1.push_back(20);
    v1.push_back(30);

    cout << "The size of v1 is " << v1.size() << endl;
    v1.clear();
    cout << "The size of v1 after clearing is " << v1.size() << endl;
}
The size of v1 is 3
The size of v1 after clearing is 0

const_iterator

Jenis yang menyediakan iterator akses acak yang dapat membaca const elemen di vektor.

typedef implementation-defined const_iterator;

Keterangan

Jenis const_iterator tidak dapat digunakan untuk mengubah nilai elemen.

Contoh

Lihat contoh untuk kembali untuk contoh yang menggunakan const_iterator.

const_pointer

Jenis yang menyediakan penunjuk ke const elemen di vektor.

typedef typename Allocator::const_pointer const_pointer;

Keterangan

Jenis const_pointer tidak dapat digunakan untuk mengubah nilai elemen.

Iterator lebih umum digunakan untuk mengakses elemen vektor.

const_reference

Jenis yang menyediakan referensi ke elemen yang const disimpan dalam vektor. Ini digunakan untuk membaca dan melakukan const operasi.

typedef typename Allocator::const_reference const_reference;

Keterangan

Jenis const_reference tidak dapat digunakan untuk mengubah nilai elemen.

Contoh

// vector_const_ref.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(10);
    v1.push_back(20);

    const vector<int> v2 = v1;
    const int& i = v2.front();
    const int& j = v2.back();
    cout << "The first element is " << i << endl;
    cout << "The second element is " << j << endl;

    // The following line would cause an error as v2 is const
    // v2.push_back(30);
}
The first element is 10
The second element is 20

const_reverse_iterator

Jenis yang menyediakan iterator akses acak yang dapat membaca elemen apa pun const di vektor.

typedef std::reverse_iterator<const_iterator> const_reverse_iterator;

Keterangan

Jenis const_reverse_iterator tidak dapat mengubah nilai elemen dan digunakan untuk melakukan iterasi melalui vektor secara terbalik.

Contoh

Lihat rbegin contoh cara mendeklarasikan dan menggunakan iterator.

crbegin

Mengembalikan iterator const ke elemen pertama dalam vektor terbalik.

const_reverse_iterator crbegin() const;

Nilai hasil

Iterator akses acak terbalik const yang membahas elemen pertama dalam terbalik vector atau mengatasi apa yang telah menjadi elemen terakhir dalam yang tidak terbalik vector.

Keterangan

Dengan nilai crbeginpengembalian , vector objek tidak dapat dimodifikasi.

Contoh

// vector_crbegin.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::iterator v1_Iter;
    vector<int>::const_reverse_iterator v1_rIter;

    v1.push_back(1);
    v1.push_back(2);

    v1_Iter = v1.begin();
    cout << "The first element of vector is "
        << *v1_Iter << "." << endl;

    v1_rIter = v1.crbegin();
    cout << "The first element of the reversed vector is "
        << *v1_rIter << "." << endl;
}
The first element of vector is 1.
The first element of the reversed vector is 2.

crend

Mengembalikan const iterator balik past-the-end yang menunjuk ke elemen mengikuti elemen terakhir dari vektor terbalik.

const_reverse_iterator crend() const;

Nilai hasil

Iterator const reverse past-the-end untuk vektor terbalik. Ini menunjuk ke elemen mengikuti elemen terakhir dari vektor terbalik, yang sama dengan elemen sebelum elemen pertama dari vektor non-terbalik. Elemen itu adalah tempat penampung dan tidak boleh didereferensikan. Hanya gunakan untuk perbandingan.

Keterangan

crend digunakan dengan terbalik vector seperti vector::cend yang digunakan dengan vector.

Dengan nilai crend pengembalian (cocok diderementasi), vector objek tidak dapat dimodifikasi.

crend dapat digunakan untuk menguji apakah iterator terbalik telah mencapai akhir vector.

Nilai yang dikembalikan oleh crend tidak boleh didereferensikan. Hanya gunakan untuk perbandingan.

Contoh

// vector_crend.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::const_reverse_iterator v1_rIter;

    v1.push_back(1);
    v1.push_back(2);

    for (v1_rIter = v1.rbegin(); v1_rIter != v1.rend(); v1_rIter++)
        cout << *v1_rIter << endl;
}
2
1

data

Mengembalikan penunjuk ke elemen pertama dalam vektor.

const_pointer data() const;

pointer data();

Nilai hasil

Penunjuk ke elemen pertama di vector atau ke lokasi berhasil kosong vector.

Contoh

// vector_data.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> c1;
    vector<int>::pointer c1_ptr;
    vector<int>::const_pointer c1_cPtr;

    c1.push_back(1);
    c1.push_back(2);

    cout << "The vector c1 contains elements:";
    c1_cPtr = c1.data();
    for (size_t n = c1.size(); 0 < n; --n, c1_cPtr++)
    {
        cout << " " << *c1_cPtr;
    }
    cout << endl;

    cout << "The vector c1 now contains elements:";
    c1_ptr = c1.data();
    *c1_ptr = 20;
    for (size_t n = c1.size(); 0 < n; --n, c1_ptr++)
    {
        cout << " " << *c1_ptr;
    }
    cout << endl;
}
The vector c1 contains elements: 1 2
The vector c1 now contains elements: 20 2

difference_type

Jenis yang menyediakan perbedaan antara dua iterator yang merujuk ke elemen dalam vektor yang sama.

typedef typename Allocator::difference_type difference_type;

Keterangan

Juga difference_type dapat digambarkan sebagai jumlah elemen antara dua pointer, karena pointer ke elemen berisi alamatnya.

Iterator lebih umum digunakan untuk mengakses elemen vektor.

Contoh

// vector_diff_type.cpp
// compile with: /EHsc
#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
    using namespace std;

    vector<int> c1;
    vector<int>::iterator c1_Iter, c2_Iter;

    c1.push_back(30);
    c1.push_back(20);
    c1.push_back(30);
    c1.push_back(10);
    c1.push_back(30);
    c1.push_back(20);

    c1_Iter = c1.begin();
    c2_Iter = c1.end();

    vector<int>::difference_type df_typ1, df_typ2, df_typ3;

    df_typ1 = count(c1_Iter, c2_Iter, 10);
    df_typ2 = count(c1_Iter, c2_Iter, 20);
    df_typ3 = count(c1_Iter, c2_Iter, 30);
    cout << "The number '10' is in c1 collection " << df_typ1 << " times.\n";
    cout << "The number '20' is in c1 collection " << df_typ2 << " times.\n";
    cout << "The number '30' is in c1 collection " << df_typ3 << " times.\n";
}
The number '10' is in c1 collection 1 times.
The number '20' is in c1 collection 2 times.
The number '30' is in c1 collection 3 times.

emplace

Menyisipkan elemen yang dibangun di tempat ke vektor pada posisi tertentu.

template <class... Types>
iterator emplace(
    const_iterator position,
    Types&&... args);

Parameter

position
Posisi di vector mana elemen pertama disisipkan.

args
Argumen konstruktor. Fungsi menyimpulkan kelebihan beban konstruktor mana yang akan dipanggil berdasarkan argumen yang disediakan.

Nilai hasil

Fungsi mengembalikan iterator yang menunjuk ke posisi di mana elemen baru dimasukkan ke vectordalam .

Keterangan

Setiap operasi penyisipan bisa mahal, lihat vector kelas untuk diskusi vector performa.

Contoh

// vector_emplace.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::iterator Iter;

    v1.push_back(10);
    v1.push_back(20);
    v1.push_back(30);

    cout << "v1 =";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << " " << *Iter;
    cout << endl;

    // initialize a vector of vectors by moving v1
    vector<vector<int>> vv1;

    vv1.emplace(vv1.begin(), move(v1));
    if (vv1.size() != 0 && vv1[0].size() != 0)
    {
        cout << "vv1[0] =";
        for (Iter = vv1[0].begin(); Iter != vv1[0].end(); Iter++)
            cout << " " << *Iter;
        cout << endl;
    }
}
v1 = 10 20 30
vv1[0] = 10 20 30

emplace_back

Menambahkan elemen yang dibangun di tempat ke akhir vektor.

template <class... Types>
void emplace_back(Types&&... args);

Parameter

args
Argumen konstruktor. Fungsi menyimpulkan kelebihan beban konstruktor mana yang akan dipanggil berdasarkan argumen yang disediakan.

Contoh

#include <vector>

struct obj
{
    obj(int, double) {}
};

int main()
{
    std::vector<obj> v;
    v.emplace_back(1, 3.14); // obj in created in place in the vector
}

empty

Menguji apakah vektor kosong.

bool empty() const;

Nilai hasil

true jika vektor kosong; false jika vektor tidak kosong.

Contoh

// vector_empty.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(10);

    if (v1.empty())
        cout << "The vector is empty." << endl;
    else
        cout << "The vector is not empty." << endl;
}
The vector is not empty.

end

Mengembalikan iterator past-the-end yang menunjuk ke elemen mengikuti elemen terakhir vektor.

iterator end();

const_iterator end() const;

Nilai hasil

Iterator past-the-end untuk vektor. Ini menunjuk ke elemen mengikuti elemen terakhir vektor. Elemen itu adalah tempat penampung dan tidak boleh didereferensikan. Hanya gunakan untuk perbandingan. Jika vektor kosong, maka vector::end() == vector::begin().

Keterangan

Jika nilai end pengembalian ditetapkan ke variabel jenis const_iterator, objek vektor tidak dapat dimodifikasi. Jika nilai end pengembalian ditetapkan ke variabel jenis iterator, objek vektor dapat dimodifikasi.

Contoh

// vector_end.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::iterator v1_Iter;

    v1.push_back(1);
    v1.push_back(2);

    for (v1_Iter = v1.begin(); v1_Iter != v1.end(); v1_Iter++)
        cout << *v1_Iter << endl;
}
1
2

erase

Menghapus elemen atau rentang elemen dalam vektor dari posisi yang ditentukan.

iterator erase(
    const_iterator position);

iterator erase(
    const_iterator first,
    const_iterator last);

Parameter

position
Posisi elemen yang akan dihapus dari vektor.

first
Posisi elemen pertama dihapus dari vektor.

last
Posisi tepat di luar elemen terakhir yang dihapus dari vektor.

Nilai hasil

Iterator yang menunjuk elemen pertama yang tersisa di luar elemen apa pun yang dihapus, atau penunjuk ke akhir vektor jika tidak ada elemen tersebut.

Contoh

// vector_erase.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::iterator Iter;

    v1.push_back(10);
    v1.push_back(20);
    v1.push_back(30);
    v1.push_back(40);
    v1.push_back(50);

    cout << "v1 =";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << " " << *Iter;
    cout << endl;

    v1.erase(v1.begin());
    cout << "v1 =";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << " " << *Iter;
    cout << endl;

    v1.erase(v1.begin() + 1, v1.begin() + 3);
    cout << "v1 =";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << " " << *Iter;
    cout << endl;
}
v1 = 10 20 30 40 50
v1 = 20 30 40 50
v1 = 20 50

front

Mengembalikan referensi ke elemen pertama dalam vektor.

reference front();

const_reference front() const;

Nilai hasil

Referensi ke elemen pertama dalam objek vektor. Jika vektor kosong, pengembalian tidak ditentukan.

Keterangan

Jika nilai front pengembalian ditetapkan ke const_reference, objek vektor tidak dapat dimodifikasi. Jika nilai front pengembalian ditetapkan ke reference, objek vektor dapat dimodifikasi.

Saat dikompilasi dengan menggunakan _ITERATOR_DEBUG_LEVEL yang didefinisikan sebagai 1 atau 2, kesalahan runtime terjadi jika Anda mencoba mengakses elemen di vektor kosong. Untuk informasi selengkapnya, lihat Iterator yang diperiksa.

Contoh

// vector_front.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(10);
    v1.push_back(11);

    int& i = v1.front();

    cout << "The first integer of v1 is " << i << endl;
    // by incrementing i, we move the front reference to the second element
    i++;
    cout << "Now, the first integer of v1 is " << i << endl;
}
The first integer of v1 is 10
Now, the first integer of v1 is 11

get_allocator

Mengembalikan salinan objek alokator yang digunakan untuk membangun vektor.

Allocator get_allocator() const;

Nilai hasil

Alokator yang digunakan oleh vektor.

Keterangan

Alokator untuk kelas vektor menentukan bagaimana kelas mengelola penyimpanan. Alokator default yang disediakan dengan kelas kontainer Pustaka Standar C++ cukup untuk sebagian besar kebutuhan pemrograman. Menulis dan menggunakan kelas alokator Anda sendiri adalah fitur C++ tingkat lanjut.

Contoh

// vector_get_allocator.cpp
// compile with: /EHsc
#include <vector>

int main()
{
    using namespace std;
    // The following lines declare objects that use the default allocator.
    vector<int> v1;
    vector<int, allocator<int>> v2 = vector<int, allocator<int>>(allocator<int>());

    // v3 will use the same allocator class as v1
    vector<int> v3(v1.get_allocator());

    vector<int>::allocator_type xvec = v3.get_allocator();
    // You can now call functions on the allocator class used by vec
}

insert

Menyisipkan elemen, atau banyak elemen, atau rentang elemen ke dalam vektor pada posisi tertentu.

iterator insert(
    const_iterator position,
    const Type& value);

iterator insert(
    const_iterator position,
    Type&& value);

void insert(
    const_iterator position,
    size_type count,
    const Type& value);

template <class InputIterator>
void insert(
    const_iterator position,
    InputIterator first,
    InputIterator last);

Parameter

position
Posisi di vektor tempat elemen pertama disisipkan.

value
Nilai elemen yang dimasukkan ke dalam vektor.

count
Jumlah elemen yang dimasukkan ke dalam vektor.

first
Posisi elemen pertama dalam rentang elemen yang akan disalin.

last
Posisi elemen pertama di luar rentang elemen yang akan disalin.

Nilai hasil

Dua insert fungsi pertama mengembalikan iterator yang menunjuk ke posisi di mana elemen baru dimasukkan ke dalam vektor.

Keterangan

Sebagai prasyarat, first dan last tidak boleh iterator ke vektor, atau perilaku tidak terdefinisi. Setiap operasi penyisipan bisa mahal, lihat vector kelas untuk diskusi vector performa.

Contoh

// vector_insert.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::iterator Iter;

    v1.push_back(10);
    v1.push_back(20);
    v1.push_back(30);

    cout << "v1 =";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << " " << *Iter;
    cout << endl;

    v1.insert(v1.begin() + 1, 40);
    cout << "v1 =";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << " " << *Iter;
    cout << endl;
    v1.insert(v1.begin() + 2, 4, 50);

    cout << "v1 =";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << " " << *Iter;
    cout << endl;

    const auto v2 = v1;
    v1.insert(v1.begin() + 1, v2.begin() + 2, v2.begin() + 4);
    cout << "v1 =";
    for (Iter = v1.begin(); Iter != v1.end(); Iter++)
        cout << " " << *Iter;
    cout << endl;

    // initialize a vector of vectors by moving v1
    vector<vector<int>> vv1;

    vv1.insert(vv1.begin(), move(v1));
    if (vv1.size() != 0 && vv1[0].size() != 0)
    {
        cout << "vv1[0] =";
        for (Iter = vv1[0].begin(); Iter != vv1[0].end(); Iter++)
            cout << " " << *Iter;
        cout << endl;
    }
}
v1 = 10 20 30
v1 = 10 40 20 30
v1 = 10 40 50 50 50 50 20 30
v1 = 10 50 50 40 50 50 50 50 20 30
vv1[0] = 10 50 50 40 50 50 50 50 20 30

iterator

Jenis yang menyediakan iterator akses acak yang dapat membaca atau memodifikasi elemen apa pun di vektor.

typedef implementation-defined iterator;

Keterangan

Jenis iterator dapat digunakan untuk mengubah nilai elemen.

Contoh

Lihat contoh untuk begin.

max_size

Mengembalikan panjang maksimum vektor.

size_type max_size() const;

Nilai hasil

Panjang maksimum yang mungkin dari vektor.

Contoh

// vector_max_size.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::size_type i;

    i = v1.max_size();
    cout << "The maximum possible length of the vector is " << i << "." << endl;
}
The maximum possible length of the vector is 4611686018427387903.

operator[]

Mengembalikan referensi ke elemen vektor pada posisi tertentu.

reference operator[](size_type position);

const_reference operator[](size_type position) const;

Parameter

position
Posisi elemen vektor.

Nilai hasil

Jika posisi yang ditentukan lebih besar dari atau sama dengan ukuran kontainer, hasilnya tidak ditentukan.

Keterangan

Jika nilai operator[] pengembalian ditetapkan ke const_reference, objek vektor tidak dapat dimodifikasi. Jika nilai operator[] pengembalian ditetapkan ke referensi, objek vektor dapat dimodifikasi.

Saat dikompilasi dengan menggunakan _ITERATOR_DEBUG_LEVEL yang didefinisikan sebagai 1 atau 2, kesalahan runtime terjadi jika Anda mencoba mengakses elemen di luar batas vektor. Untuk informasi selengkapnya, lihat Iterator yang diperiksa.

Contoh

// vector_op_ref.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(10);
    v1.push_back(20);

    int& i = v1[1];
    cout << "The second integer of v1 is " << i << endl;
}
The second integer of v1 is 20

operator=

Mengganti elemen vektor dengan salinan vektor lain.

vector& operator=(const vector& right);

vector& operator=(vector&& right);

Parameter

right
yang vector sedang disalin ke vectordalam .

Keterangan

Setelah menghapus elemen yang ada dalam vector, operator= salin atau pindahkan konten right ke vectordalam .

Contoh

// vector_operator_as.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1, v2, v3;
    vector<int>::iterator iter;

    v1.push_back(10);
    v1.push_back(20);
    v1.push_back(30);
    v1.push_back(40);
    v1.push_back(50);

    cout << "v1 = ";
    for (iter = v1.begin(); iter != v1.end(); iter++)
        cout << *iter << " ";
    cout << endl;

    v2 = v1;
    cout << "v2 = ";
    for (iter = v2.begin(); iter != v2.end(); iter++)
        cout << *iter << " ";
    cout << endl;

    // move v1 into v2
    v2.clear();
    v2 = move(v1);
    cout << "v2 = ";
    for (iter = v2.begin(); iter != v2.end(); iter++)
        cout << *iter << " ";
    cout << endl;
}
v1 = 10 20 30 40 50
v2 = 10 20 30 40 50
v2 = 10 20 30 40 50

pointer

Jenis yang menyediakan penunjuk ke elemen di vektor.

typedef typename Allocator::pointer pointer;

Keterangan

Jenis pointer dapat digunakan untuk mengubah nilai elemen.

Contoh

// vector_pointer.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v;
    v.push_back(11);
    v.push_back(22);

    vector<int>::pointer ptr = &v[0];
    cout << *ptr << endl;
    ptr++;
    cout << *ptr << endl;
    *ptr = 44;
    cout << *ptr << endl;
}
11
22
44

pop_back

Menghapus elemen di akhir vektor.

void pop_back();

Keterangan

Untuk contoh kode, lihat vektor::p ush_back().

push_back

Menambahkan elemen ke akhir vektor.

void push_back(const T& value);

void push_back(T&& value);

Parameter

value
Nilai yang akan ditetapkan ke elemen yang ditambahkan ke akhir vektor.

Contoh

// compile with: /EHsc /W4
#include <vector>
#include <iostream>

using namespace std;

template <typename T>
void print_elem(const T& t)
{
    cout << "(" << t << ") ";
}

template <typename T>
void print_collection(const T& t)
{
    cout << "  " << t.size() << " elements: ";

    for (const auto& p : t)
    {
        print_elem(p);
    }
    cout << endl;
}

int main()
{
    vector<int> v;
    for (int i = 0; i < 10; ++i)
    {
        v.push_back(10 + i);
    }

    cout << "vector data: " << endl;
    print_collection(v);

    // pop_back() until it's empty, printing the last element as we go
    while (v.begin() != v.end())
    {
        cout << "v.back(): ";
        print_elem(v.back());
        cout << endl;
        v.pop_back();
    }
}
vector data:
  10 elements: (10) (11) (12) (13) (14) (15) (16) (17) (18) (19)
v.back(): (19)
v.back(): (18)
v.back(): (17)
v.back(): (16)
v.back(): (15)
v.back(): (14)
v.back(): (13)
v.back(): (12)
v.back(): (11)
v.back(): (10)

rbegin

Mengembalikan iterator ke elemen pertama dalam vektor terbalik.

reverse_iterator rbegin();
const_reverse_iterator rbegin() const;

Nilai hasil

Iterator akses acak terbalik yang membahas elemen pertama dalam vektor terbalik atau mengatasi apa yang telah menjadi elemen terakhir dalam vektor yang tidak terbalik.

Keterangan

Jika nilai rbegin pengembalian ditetapkan ke const_reverse_iterator, objek vektor tidak dapat dimodifikasi. Jika nilai rbegin pengembalian ditetapkan ke reverse_iterator, objek vektor dapat dimodifikasi.

Contoh

// vector_rbegin.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::iterator v1_Iter;
    vector<int>::reverse_iterator v1_rIter;

    v1.push_back(1);
    v1.push_back(2);

    v1_Iter = v1.begin();
    cout << "The first element of vector is "
        << *v1_Iter << "." << endl;

    v1_rIter = v1.rbegin();
    cout << "The first element of the reversed vector is "
        << *v1_rIter << "." << endl;
}
The first element of vector is 1.
The first element of the reversed vector is 2.

reference

Jenis yang menyediakan referensi ke elemen yang disimpan dalam vektor.

typedef typename Allocator::reference reference;

Contoh

Lihat at contoh cara menggunakan reference di kelas vektor.

rend

Mengembalikan iterator balik past-the-end yang menunjuk ke elemen mengikuti elemen terakhir dari vektor terbalik.

const_reverse_iterator rend() const;
reverse_iterator rend();

Nilai hasil

Iterator reverse past-the-end untuk vektor terbalik. Ini menunjuk ke elemen mengikuti elemen terakhir dari vektor terbalik, yang sama dengan elemen sebelum elemen pertama dari vektor non-terbalik. Elemen itu adalah tempat penampung dan tidak boleh didereferensikan. Hanya gunakan untuk perbandingan.

Keterangan

rend digunakan dengan vektor terbalik seperti end yang digunakan dengan vektor.

Jika nilai rend pengembalian ditetapkan ke const_reverse_iterator, maka objek vektor tidak dapat dimodifikasi. Jika nilai rend pengembalian ditetapkan ke reverse_iterator, maka objek vektor dapat dimodifikasi.

rend dapat digunakan untuk menguji apakah iterator terbalik telah mencapai akhir vektornya.

Nilai yang dikembalikan oleh rend tidak boleh didereferensikan. Hanya gunakan untuk perbandingan.

Contoh

// vector_rend.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::reverse_iterator v1_rIter;

    v1.push_back(1);
    v1.push_back(2);

    for (v1_rIter = v1.rbegin(); v1_rIter != v1.rend(); v1_rIter++)
        cout << *v1_rIter << endl;
}
2
1

reserve

Mencadangkan panjang penyimpanan minimum untuk objek vektor, mengalokasikan ruang jika perlu.

void reserve(size_type count);

Parameter

count
Panjang minimum penyimpanan yang akan dialokasikan untuk vektor.

Contoh

// vector_reserve.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(1);
    cout << "Current capacity of v1 = "
        << v1.capacity() << endl;
    v1.reserve(20);
    cout << "Current capacity of v1 = "
        << v1.capacity() << endl;
}
Current capacity of v1 = 1
Current capacity of v1 = 20

resize

Menentukan ukuran baru untuk vektor.

void resize(size_type new_size);
void resize(size_type new_size, Type value);

Parameter

new_size
Ukuran baru vektor.

value
Nilai inisialisasi elemen baru ditambahkan ke vektor jika ukuran baru lebih besar dari ukuran aslinya. Jika nilai dihilangkan, objek baru menggunakan konstruktor defaultnya.

Keterangan

Jika ukuran kontainer kurang dari ukuran yang diminta, new_size, resize menambahkan elemen ke vektor hingga mencapai ukuran yang diminta. Ketika ukuran kontainer lebih besar dari ukuran yang diminta, resize hapus elemen yang paling dekat dengan akhir kontainer hingga mencapai ukuran new_size. Tidak ada tindakan yang diambil jika ukuran kontainer saat ini sama dengan ukuran yang diminta.

size mencerminkan ukuran vektor saat ini.

Contoh

// vectorsizing.cpp
// compile with: /EHsc /W4
// Illustrates vector::reserve, vector::max_size,
// vector::resize, vector::resize, and vector::capacity.
//
// Functions:
//
//    vector::max_size - Returns maximum number of elements vector could
//                       hold.
//
//    vector::capacity - Returns number of elements for which memory has
//                       been allocated.
//
//    vector::size - Returns number of elements in the vector.
//
//    vector::resize - Reallocates memory for vector, preserves its
//                     contents if new size is larger than existing size.
//
//    vector::reserve - Allocates elements for vector to ensure a minimum
//                      size, preserving its contents if the new size is
//                      larger than existing size.
//
//    vector::push_back - Appends (inserts) an element to the end of a
//                        vector, allocating memory for it if necessary.
//
//////////////////////////////////////////////////////////////////////

// The debugger cannot handle symbols more than 255 characters long.
// The C++ Standard Library often creates symbols longer than that.
// The warning can be disabled:
//#pragma warning(disable:4786)

#include <iostream>
#include <vector>
#include <string>

using namespace std;

template <typename C>
void print(const string& s, const C& c)
{
    cout << s;

    for (const auto& e : c)
    {
        cout << e << " ";
    }
    cout << endl;
}

void printvstats(const vector<int>& v)
{
    cout << "   the vector's size is: " << v.size() << endl;
    cout << "   the vector's capacity is: " << v.capacity() << endl;
    cout << "   the vector's maximum size is: " << v.max_size() << endl;
}

int main()
{
    // declare a vector that begins with 0 elements.
    vector<int> v;

    // Show statistics about vector.
    cout << "After declaring an empty vector:" << endl;
    printvstats(v);
    print("   the vector's contents: ", v);

    // Add one element to the end of the vector.
    v.push_back(-1);
    cout << endl << "After adding an element:" << endl;
    printvstats(v);
    print("   the vector's contents: ", v);

    for (int i = 1; i < 10; ++i)
    {
        v.push_back(i);
    }
    cout << endl << "After adding 10 elements:" << endl;
    printvstats(v);
    print("   the vector's contents: ", v);

    v.resize(6);
    cout << endl << "After resizing to 6 elements without an initialization value:" << endl;
    printvstats(v);
    print("   the vector's contents: ", v);

    v.resize(9, 999);
    cout << endl << "After resizing to 9 elements with an initialization value of 999:" << endl;
    printvstats(v);
    print("   the vector's contents: ", v);

    v.resize(12);
    cout << endl << "After resizing to 12 elements without an initialization value:" << endl;
    printvstats(v);
    print("   the vector's contents: ", v);

    // Ensure there's room for at least 1000 elements.
    v.reserve(1000);
    cout << endl << "After vector::reserve(1000):" << endl;
    printvstats(v);

    // Ensure there's room for at least 2000 elements.
    v.resize(2000);
    cout << endl << "After vector::resize(2000):" << endl;
    printvstats(v);
}
After declaring an empty vector:
   the vector's size is: 0
   the vector's capacity is: 0
   the vector's maximum size is: 4611686018427387903
   the vector's contents:

After adding an element:
   the vector's size is: 1
   the vector's capacity is: 1
   the vector's maximum size is: 4611686018427387903
   the vector's contents: -1

After adding 10 elements:
   the vector's size is: 10
   the vector's capacity is: 13
   the vector's maximum size is: 4611686018427387903
   the vector's contents: -1 1 2 3 4 5 6 7 8 9

After resizing to 6 elements without an initialization value:
   the vector's size is: 6
   the vector's capacity is: 13
   the vector's maximum size is: 4611686018427387903
   the vector's contents: -1 1 2 3 4 5

After resizing to 9 elements with an initialization value of 999:
   the vector's size is: 9
   the vector's capacity is: 13
   the vector's maximum size is: 4611686018427387903
   the vector's contents: -1 1 2 3 4 5 999 999 999

After resizing to 12 elements without an initialization value:
   the vector's size is: 12
   the vector's capacity is: 13
   the vector's maximum size is: 4611686018427387903
   the vector's contents: -1 1 2 3 4 5 999 999 999 0 0 0

After vector::reserve(1000):
   the vector's size is: 12
   the vector's capacity is: 1000
   the vector's maximum size is: 4611686018427387903

After vector::resize(2000):
   the vector's size is: 2000
   the vector's capacity is: 2000
   the vector's maximum size is: 4611686018427387903

reverse_iterator

Jenis yang menyediakan iterator akses acak yang dapat membaca atau memodifikasi elemen apa pun dalam vektor terbalik.

typedef std::reverse_iterator<iterator> reverse_iterator;

Keterangan

Jenis reverse_iterator digunakan untuk melakukan iterasi melalui vektor secara terbalik.

Contoh

Lihat contoh untuk rbegin.

shrink_to_fit

Membuang kelebihan kapasitas.

void shrink_to_fit();

Contoh

// vector_shrink_to_fit.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;

    v1.push_back(1);
    cout << "Current capacity of v1 = "
        << v1.capacity() << endl;
    v1.reserve(20);
    cout << "Current capacity of v1 = "
        << v1.capacity() << endl;
    v1.shrink_to_fit();
    cout << "Current capacity of v1 = "
        << v1.capacity() << endl;
}
Current capacity of v1 = 1
Current capacity of v1 = 20
Current capacity of v1 = 1

size

Mengembalikan jumlah elemen dalam vektor.

size_type size() const;

Nilai hasil

Panjang vektor saat ini.

Contoh

// vector_size.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1;
    vector<int>::size_type i;

    v1.push_back(1);
    i = v1.size();
    cout << "Vector length is " << i << "." << endl;

    v1.push_back(2);
    i = v1.size();
    cout << "Vector length is now " << i << "." << endl;
}
Vector length is 1.
Vector length is now 2.

size_type

Jenis yang menghitung jumlah elemen dalam vektor.

typedef typename Allocator::size_type size_type;

Contoh

Lihat contoh untuk capacity.

swap

Menukar elemen dari dua vektor.

void swap(
    vector<Type, Allocator>& right);

friend void swap(
    vector<Type, Allocator>& left,
    vector<Type, Allocator>& right);

Parameter

right
Vektor yang menyediakan elemen yang akan ditukar. Atau, vektor yang elemennya akan ditukar dengan elemen di vektor left.

left
Vektor yang elemennya akan ditukar dengan elemen di vektor right.

Contoh

// vector_swap.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int> v1, v2;

    v1.push_back(1);
    v1.push_back(2);
    v1.push_back(3);

    v2.push_back(10);
    v2.push_back(20);

    cout << "The number of elements in v1 = " << v1.size() << endl;
    cout << "The number of elements in v2 = " << v2.size() << endl;
    cout << endl;

    v1.swap(v2);

    cout << "The number of elements in v1 = " << v1.size() << endl;
    cout << "The number of elements in v2 = " << v2.size() << endl;
}
The number of elements in v1 = 3
The number of elements in v2 = 2

The number of elements in v1 = 2
The number of elements in v2 = 3

value_type

Jenis yang mewakili jenis data yang disimpan dalam vektor.

typedef typename Allocator::value_type value_type;

Keterangan

value_type adalah sinonim untuk parameter Typetemplat .

Contoh

// vector_value_type.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int>::value_type AnInt;
    AnInt = 44;
    cout << AnInt << endl;
}
44

vector

Membangun vektor. Membebani konstruksi vektor dengan ukuran tertentu, atau dengan elemen nilai tertentu. Atau, sebagai salinan semua atau sebagian dari beberapa vektor lainnya. Beberapa kelebihan beban juga memungkinkan Anda menentukan alokator untuk digunakan.

vector();
explicit vector(const Allocator& allocator);
explicit vector(size_type count);
vector(size_type count, const Type& value);
vector(size_type count, const Type& value, const Allocator& allocator);

vector(const vector& source);
vector(vector&& source);
vector(initializer_list<Type> init_list, const Allocator& allocator);

template <class InputIterator>
vector(InputIterator first, InputIterator last);
template <class InputIterator>
vector(InputIterator first, InputIterator last, const Allocator& allocator);

Parameter

allocator
Kelas alokator untuk digunakan dengan objek ini. get_allocator mengembalikan kelas alokator untuk objek .

count
Jumlah elemen dalam vektor yang dibangun.

value
Nilai elemen dalam vektor yang dibangun.

source
Vektor tempat vektor yang dibangun akan menjadi salinan.

first
Posisi elemen pertama dalam rentang elemen yang akan disalin.

last
Posisi elemen pertama di luar rentang elemen yang akan disalin.

init_list
yang initializer_list berisi elemen yang akan disalin.

Keterangan

Semua konstruktor menyimpan objek alokator (allocator) dan menginisialisasi vektor.

Dua konstruktor pertama menentukan vektor awal kosong. Konstruktor kedua secara eksplisit menentukan jenis alokator (allocator) untuk digunakan.

Konstruktor ketiga menentukan pengulangan angka (count) elemen tertentu dari nilai default untuk kelas Type.

Konstruktor keempat dan kelima menentukan pengulangancount () elemen nilai value.

Konstruktor keenam menentukan salinan vektor source.

Konstruktor ketujuh memindahkan vektor source.

Konstruktor kedelapan menggunakan initializer_list untuk menentukan elemen.

Konstruktor kesembilan dan kesepuluh menyalin rentang [first, last) dari vektor.

Contoh

// vector_ctor.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main()
{
    using namespace std;
    vector<int>::iterator v1_Iter, v2_Iter, v3_Iter, v4_Iter, v5_Iter, v6_Iter;

    // Create an empty vector v0
    vector<int> v0;

    // Create a vector v1 with 3 elements of default value 0
    vector<int> v1(3);

    // Create a vector v2 with 5 elements of value 2
    vector<int> v2(5, 2);

    // Create a vector v3 with 3 elements of value 1 and with the allocator
    // of vector v2
    vector<int> v3(3, 1, v2.get_allocator());

    // Create a copy, vector v4, of vector v2
    vector<int> v4(v2);

    // Create a new temporary vector for demonstrating copying ranges
    vector<int> v5(5);
    for (auto i : v5)
    {
        v5[i] = i;
    }

    // Create a vector v6 by copying the range v5[ first,  last)
    vector<int> v6(v5.begin() + 1, v5.begin() + 3);

    cout << "v1 =";
    for (auto& v : v1)
    {
        cout << " " << v;
    }
    cout << endl;

    cout << "v2 =";
    for (auto& v : v2)
    {
        cout << " " << v;
    }
    cout << endl;

    cout << "v3 =";
    for (auto& v : v3)
    {
        cout << " " << v;
    }
    cout << endl;

    cout << "v4 =";
    for (auto& v : v4)
    {
        cout << " " << v;
    }
    cout << endl;

    cout << "v5 =";
    for (auto& v : v5)
    {
        cout << " " << v;
    }
    cout << endl;

    cout << "v6 =";
    for (auto& v : v6)
    {
        cout << " " << v;
    }
    cout << endl;

    // Move vector v2 to vector v7
    vector<int> v7(move(v2));
    vector<int>::iterator v7_Iter;

    cout << "v7 =";
    for (auto& v : v7)
    {
        cout << " " << v;
    }
    cout << endl;

    cout << "v8 =";
    vector<int> v8{ { 1, 2, 3, 4 } };
    for (auto& v : v8)
    {
        cout << " " << v;
    }
    cout << endl;
}
v1 = 0 0 0
v2 = 2 2 2 2 2
v3 = 1 1 1
v4 = 2 2 2 2 2
v5 = 0 0 0 0 0
v6 = 0 0
v7 = 2 2 2 2 2
v8 = 1 2 3 4

Lihat juga

Keamanan utas di Pustaka Standar C++
Referensi pustaka standar C++