Aracılığıyla paylaş


vector sınıfı

C++ Standart Kitaplık vektör sınıfı, sıralı kapsayıcılar için bir sınıf şablonudur. Vektör, belirli bir türün öğelerini doğrusal bir düzende depolar ve herhangi bir öğeye hızlı rastgele erişim sağlar. Vektör, rastgele erişim performansı premium olduğunda sıra için tercih edilen kapsayıcıdır.

Sözdizimi

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

Parametreler

Type
Vektörde depolanacak öğe veri türü

Allocator
Vektörün bellek ayırması ve serbest bırakılması hakkındaki ayrıntıları kapsülleyen depolanmış ayırıcı nesnesini temsil eden tür. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değerdir allocator<Type>.

Açıklamalar

Vektörler, sıranın sonunda sürekli zaman ekleme ve silme işlemlerine izin verir. Bir vektörünün ortasına öğe eklemek veya silmek için doğrusal süre gerekir. Sınıf kapsayıcısıdeque, bir dizinin başında ve sonundaki ekleme ve silme işlemlerinde daha hızlıdır. Sınıf list kapsayıcısı, bir dizi içindeki herhangi bir konumdaki ekleme ve silme işlemlerinde daha hızlıdır.

Vektör yeniden konumlandırma, bir üye işlevinin vektör nesnesinde bulunan sırayı geçerli depolama kapasitesinin ötesinde artırması gerektiğinde oluşur. Diğer eklemeler ve silme işlemleri, dizideki çeşitli depolama adreslerini değiştirebilir. Bu gibi durumlarda, sıranın değiştirilmiş bölümlerini işaret eden yineleyiciler veya başvurular geçersiz hale gelir. Yeniden ayırma gerçekleşmezse, ekleme/silme noktası öncesinde yalnızca yineleyiciler ve başvurular geçerli kalır.

vector<bool> sınıfı, türündeki boolöğeler için sınıf şablonu vektörünün tam uzmanlığıdır. Uzmanlık tarafından kullanılan temel tür için bir ayırıcıya sahiptir.

Başvuru vector<bool> sınıfı , nesneleri bir nesne içindeki öğelere (tek bit) başvuru sağlayabilen iç içe geçmiş bir vector<bool> sınıftır.

Üyeler

Oluşturucular

Ad Tanım
vector Belirli bir boyutta veya belirli bir değerin öğeleriyle ya da belirli bir veya başka bir allocator vektörünün kopyası olarak vektör oluşturur.

Tür tanımları

Ad Tanım
[allocator_type](#allocator_type) Vektör nesnesinin sınıfını allocator temsil eden bir tür.
const_iterator Vektördeki bir öğeyi okuyabilen const rastgele erişim yineleyicisi sağlayan bir tür.
const_pointer Vektördeki bir const öğeye işaretçi sağlayan tür.
const_reference Vektörde depolanan bir const öğeye başvuru sağlayan bir tür. İşlemleri okumak ve yapmak const için kullanılır.
const_reverse_iterator Vektördeki herhangi const bir öğeyi okuyabilen rastgele erişim yineleyicisi sağlayan bir tür.
difference_type Bir vektördeki iki öğeye ait adresler arasındaki farkı sağlayan bir tür.
iterator Vektördeki herhangi bir öğeyi okuyabilen veya değiştirebilen rastgele erişim yineleyicisi sağlayan bir tür.
pointer Vektördeki bir öğeye işaretçi sağlayan bir tür.
reference Vektörde depolanan bir öğeye başvuru sağlayan bir tür.
reverse_iterator Ters çevrilmiş vektördeki herhangi bir öğeyi okuyabilen veya değiştirebilen rastgele erişim yineleyicisi sağlayan bir tür.
size_type Bir vektördeki öğe sayısını sayan bir tür.
value_type Vektörde depolanan veri türünü temsil eden bir tür.

İşlevler

Ad Tanım
assign Bir vektör siler ve belirtilen öğeleri boş vektöre kopyalar.
at Vektörde belirtilen konumdaki öğesine başvuru döndürür.
back Vektörünün son öğesine başvuru döndürür.
begin Vektördeki ilk öğeye rastgele erişim yineleyicisi döndürür.
capacity Daha fazla depolama alanı ayırmadan vektörünün içerebileceği öğe sayısını döndürür.
cbegin Vektördeki ilk öğeye rastgele erişim sabit yineleyicisi döndürür.
cend Vektör sonunun hemen ötesine işaret eden rastgele erişimli bir sabit yineleyici döndürür.
crbegin Ters çevrilmiş vektördeki ilk öğeye sabit bir yineleyici döndürür.
crend Ters çevrilmiş vektörünün sonuna sabit bir yineleyici döndürür.
clear Vektör öğelerini siler.
data Vektördeki ilk öğeye bir işaretçi döndürür.
emplace Belirtilen konumda vektöre yerinde inşa edilmiş bir öğe ekler.
emplace_back Vektörünün sonuna yerinde bir öğe ekler.
empty Vektör kapsayıcısının boş olup olmadığını sınar.
end Vektörünün sonuna işaret eden rastgele erişim yineleyicisi döndürür.
erase Vektördeki bir öğeyi veya öğe aralığını belirtilen konumlardan kaldırır.
front Vektördeki ilk öğeye başvuru döndürür.
get_allocator Vektör tarafından kullanılan sınıfına allocator bir nesnesi döndürür.
insert Belirtilen konumda vektöre bir öğe veya çok sayıda öğe ekler.
max_size Vektör uzunluğu üst sınırını döndürür.
pop_back Vektörünün sonundaki öğesini siler.
push_back Vektörünün sonuna bir öğe ekleyin.
rbegin Ters çevrilmiş vektördeki ilk öğeye bir yineleyici döndürür.
rend Ters çevrilmiş vektörünün sonuna bir yineleyici döndürür.
reserve Vektör nesnesi için en düşük depolama uzunluğunu ayırır.
resize Vektör için yeni bir boyut belirtir.
shrink_to_fit Fazla kapasiteyi atar.
size Vektördeki öğelerin sayısını döndürür.
swap İki vektörünün öğelerini değiştirir.

İşleçler

Ad Tanım
operator[] Vektör öğesine belirtilen konumda bir başvuru döndürür.
operator= Vektör öğelerini başka bir vektör kopyasıyla değiştirir.

allocator_type

Vektör nesnesi için ayırıcı sınıfını temsil eden bir tür.

typedef Allocator allocator_type;

Açıklamalar

allocator_type , şablon parametresinin Allocatoreş anlamlısıdır.

Örnek

kullanan allocator_typebir örneğin get_allocator örneğine bakın.

assign

Bir vektör siler ve belirtilen öğeleri boş vektöre kopyalar.

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

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

Parametreler

first
Kopyalanacak öğe aralığındaki ilk öğenin konumu.

last
Kopyalanacak öğe aralığının ötesindeki ilk öğenin konumu.

count
Vektöre eklenen öğenin kopya sayısı.

value
Vektöre eklenen öğenin değeri.

init_list
Eklenecek öğeleri içeren initializer_list.

Açıklamalar

İlk olarak, assign bir vektördeki mevcut öğeleri siler. Ardından, assign özgün vektörden belirtilen bir öğe aralığını bir vektöre ekler veya yeni belirtilen değer öğesinin kopyalarını bir vektöre ekler.

Örnek

/ 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 });
    for (auto& v : v3){
        cout << v << " ";
    }
    cout << endl;
}

at

Vektörde belirtilen konumdaki öğesine başvuru döndürür.

reference at(size_type position);

const_reference at(size_type position) const;

Parametreler

position
Vektörde başvurulacak öğenin alt indis veya konum numarası.

Dönüş değeri

Bağımsız değişkende alt indislenen öğeye başvuru. Vektör boyutundan büyükse position , at bir özel durum oluşturur.

Açıklamalar

dönüş değeri at bir const_referenceöğesine atanmışsa vektör nesnesi değiştirilemez. dönüş değeri at bir referenceöğesine atanmışsa vektör nesnesi değiştirilebilir.

Örnek

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

Vektörünün son öğesine başvuru döndürür.

reference back();

const_reference back() const;

Dönüş değeri

Vektörünün son öğesi. Vektör boşsa dönüş değeri tanımsız olur.

Açıklamalar

dönüş değeri back bir const_referenceöğesine atanmışsa vektör nesnesi değiştirilemez. dönüş değeri back bir referenceöğesine atanmışsa vektör nesnesi değiştirilebilir.

1 veya 2 olarak tanımlanan kullanılarak _ITERATOR_DEBUG_LEVEL derlendiğinde, boş bir vektördeki bir öğeye erişmeye çalıştığınızda çalışma zamanı hatası oluşur. Daha fazla bilgi için bkz . İşaretli yineleyiciler.

Örnek

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

begin

Vektördeki ilk öğeye rastgele erişim yineleyicisi döndürür.

const_iterator begin() const;

iterator begin();

Dönüş değeri

veya içindeki vector ilk öğeyi veya boş vectorbir öğesinin başarılı olduğu konumu ele alan rastgele erişim yineleyicisi. Geçerli olduğundan emin olmak için her zaman ile vector::end döndürülen değeri karşılaştırın.

Açıklamalar

değerinin dönüş değeri begin bir vector::const_iteratorvector öğesine atanmışsa nesnesi değiştirilemez. dönüş değeri begin bir vector::iteratorvector öğesine atanmışsa nesnesi değiştirilebilir.

Örnek

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

Daha fazla depolama alanı ayırmadan vektörünün içerebileceği öğe sayısını döndürür.

size_type capacity() const;

Dönüş değeri

Vektör için ayrılan geçerli depolama uzunluğu.

Açıklamalar

Üye işlevi resize , buna uyum sağlamak için yeterli bellek ayrılırsa daha verimli olur. Ayrılan bellek miktarını belirtmek için üye işlevini reserve kullanın.

Örnek

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

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

const_iterator cbegin() const;

Dönüş değeri

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

Açıklamalar

değerinin cbegindönüş değeriyle, aralıktaki öğeler değiştirilemez.

Dönüş değerinin olduğunu const_iteratorgaranti etmek için üye işlevinin begin() yerine bu üye işlevini kullanabilirsiniz. Genellikle, aşağıdaki örnekte gösterildiği gibi içinde tür kesinti anahtar sözcüğüyle auto birlikte kullanılır. Örnekte, ve cbegin()destekleyen herhangi bir türde begin() değiştirilebilir (non- const) kapsayıcısı olduğunu düşününContainer.

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

// i2 is Container<T>::const_iterator

cend

const Vektörünün son öğesini izleyen öğeye işaret eden bir son son yineleyici döndürür.

const_iterator cend() const;

Dönüş değeri

const Vektör için bir son geçmiş yineleyici. Vektörünün son öğesini izleyen öğeye işaret eder. Bu öğe bir yer tutucudur ve başvurulmamalıdır. Bunu yalnızca karşılaştırmalar için kullanın. Vektör boşsa, öğesini seçin vector::cend() == vector::cbegin().

Açıklamalar

cend bir yineleyicinin aralığının sonunu geçip geçmediğini test etmek için kullanılır.

Dönüş değerinin olduğunu const_iteratorgaranti etmek için üye işlevinin end() yerine bu üye işlevini kullanabilirsiniz. Genellikle, aşağıdaki örnekte gösterildiği gibi tür kesinti anahtar sözcüğüyle auto birlikte kullanılır. Örnekte, ve cend()destekleyen herhangi bir türde end() değiştirilebilir (non- const) kapsayıcısı olduğunu düşününContainer.

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

// i2 is Container<T>::const_iterator

tarafından cend döndürülen değer başvurulmamalıdır. Bunu yalnızca karşılaştırmalar için kullanın.

clear

Vektör öğelerini siler.

void clear();

Örnek

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

Vektördeki bir öğeyi okuyabilen const rastgele erişim yineleyicisi sağlayan bir tür.

typedef implementation-defined const_iterator;

Açıklamalar

Bir öğenin değerini değiştirmek için bir tür const_iterator kullanılamaz.

Örnek

kullanan const_iteratorbir örnek için geri örneğine bakın.

const_pointer

Vektördeki bir const öğeye işaretçi sağlayan tür.

typedef typename Allocator::const_pointer const_pointer;

Açıklamalar

Bir öğenin değerini değiştirmek için bir tür const_pointer kullanılamaz.

Yineleyici daha yaygın olarak bir vektör öğesine erişmek için kullanılır.

const_reference

Vektörde depolanan bir const öğeye başvuru sağlayan bir tür. İşlemleri okumak ve yapmak const için kullanılır.

typedef typename Allocator::const_reference const_reference;

Açıklamalar

Bir öğenin değerini değiştirmek için bir tür const_reference kullanılamaz.

Örnek

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

Vektördeki herhangi const bir öğeyi okuyabilen rastgele erişim yineleyicisi sağlayan bir tür.

typedef std::reverse_iterator<const_iterator> const_reverse_iterator;

Açıklamalar

Bir tür const_reverse_iterator bir öğenin değerini değiştiremez ve vektörde tersten yinelemek için kullanılır.

Örnek

Yineleyici bildirme ve kullanma örneği için bkz rbegin .

crbegin

Ters çevrilmiş vektördeki ilk öğeye sabit bir yineleyici döndürür.

const_reverse_iterator crbegin() const;

Dönüş değeri

Ters çevrilmiş vector bir içindeki ilk öğeyi veya ters çevrilmemiş vectoriçindeki son öğeyi ele alan sabit bir ters rastgele erişim yineleyicisi.

Açıklamalar

dönüş değeriyle crbeginvector nesne değiştirilemez.

Örnek

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

const Ters çevrilmiş vektörünün son öğesini izleyen öğeye işaret eden bir geçmiş uç ters yineleyici döndürür.

const_reverse_iterator crend() const;

Dönüş değeri

const Ters çevrilmiş vektör için arka uç yineleyicisi. Ters çevrilmiş vektörünün son öğesini izleyen öğeye işaret eder. Bu öğe, ters çevrilmeyen vektörünün ilk öğesinden önceki öğeyle aynıdır. Bu öğe bir yer tutucudur ve başvurulmamalıdır. Bunu yalnızca karşılaştırmalar için kullanın.

Açıklamalar

crend, ile kullanıldığı gibi vector::cend ters çevrilmiş vector bir vectorile kullanılır.

dönüş değeri crend (uygun şekilde azalmış) vector ile nesne değiştirilemez.

crend , ters yineleyicinin sonuna vectorulaşıp ulaşmadığını test etmek için kullanılabilir.

tarafından crend döndürülen değer başvurulmamalıdır. Bunu yalnızca karşılaştırmalar için kullanın.

Örnek

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

Vektördeki ilk öğeye bir işaretçi döndürür.

const_pointer data() const;

pointer data();

Dönüş değeri

boş vectorbir öğesinin başarılı olduğu veya konumundaki ilk öğeye vector yönelik bir işaretçi.

Örnek

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

Aynı vektör içindeki öğelere başvuran iki yineleyici arasındaki farkı sağlayan bir tür.

typedef typename Allocator::difference_type difference_type;

Açıklamalar

bir difference_type öğe işaretçisi kendi adresini içerdiğinden, iki işaretçi arasındaki öğe sayısı olarak da tanımlanabilir.

Yineleyici daha yaygın olarak bir vektör öğesine erişmek için kullanılır.

Örnek

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

Belirtilen konumda vektöre yerinde inşa edilmiş bir öğe ekler.

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

Parametreler

position
İlk öğenin eklendiği konum vector .

args
Oluşturucu bağımsız değişkenleri. işlevi, sağlanan bağımsız değişkenlere göre çağrılacak oluşturucu aşırı yüklemesini çıkarsar.

Dönüş değeri

işlevi, yeni öğenin içine eklendiği vectorkonumu gösteren bir yineleyici döndürür.

Açıklamalar

Herhangi bir ekleme işlemi pahalı olabilir. Performans tartışması için bkzvector. sınıf.vector

Örnek

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

Vektörünün sonuna yerinde bir öğe ekler.

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

Parametreler

args
Oluşturucu bağımsız değişkenleri. işlevi, sağlanan bağımsız değişkenlere göre çağrılacak oluşturucu aşırı yüklemesini çıkarsar.

Örnek

#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

Vektör boş olup olmadığını sınar.

bool empty() const;

Dönüş değeri

true vektör boşsa; false vektör boş değilse.

Örnek

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

Vektörünün son öğesini izleyen öğeye işaret eden bir son son yineleyici döndürür.

iterator end();

const_iterator end() const;

Dönüş değeri

Vektör için bir son geçmiş yineleyici. Vektörünün son öğesini izleyen öğeye işaret eder. Bu öğe bir yer tutucudur ve başvurulmamalıdır. Bunu yalnızca karşılaştırmalar için kullanın. Vektör boşsa, öğesini seçin vector::end() == vector::begin().

Açıklamalar

dönüş değeri end türünde const_iteratorbir değişkene atanmışsa vektör nesnesi değiştirilemez. dönüş değeri end türünde iteratorbir değişkene atanmışsa vektör nesnesi değiştirilebilir.

Örnek

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

Vektördeki bir öğeyi veya öğe aralığını belirtilen konumlardan kaldırır.

iterator erase(
    const_iterator position);

iterator erase(
    const_iterator first,
    const_iterator last);

Parametreler

position
Vektörden kaldırılacak öğenin konumu.

first
Vektörden kaldırılan ilk öğenin konumu.

last
Vektörden kaldırılan son öğenin hemen ötesindeki konum.

Dönüş değeri

Kaldırılan öğelerin ötesinde kalan ilk öğeyi belirten bir yineleyici veya böyle bir öğe yoksa vektörünün sonuna bir işaretçi.

Örnek

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

Vektördeki ilk öğeye başvuru döndürür.

reference front();

const_reference front() const;

Dönüş değeri

Vektör nesnesindeki ilk öğeye başvuru. Vektör boşsa, dönüş tanımsız olur.

Açıklamalar

dönüş değeri front bir const_referenceöğesine atanmışsa vektör nesnesi değiştirilemez. dönüş değeri front bir referenceöğesine atanmışsa vektör nesnesi değiştirilebilir.

1 veya 2 olarak tanımlanan kullanılarak _ITERATOR_DEBUG_LEVEL derlendiğinde, boş bir vektördeki bir öğeye erişmeye çalıştığınızda çalışma zamanı hatası oluşur. Daha fazla bilgi için bkz . İşaretli yineleyiciler.

Örnek

// 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( );
   const int& ii = 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;
}

get_allocator

Vektör oluşturmak için kullanılan ayırıcı nesnesinin bir kopyasını döndürür.

Allocator get_allocator() const;

Dönüş değeri

Vektör tarafından kullanılan ayırıcı.

Açıklamalar

Vektör sınıfı için ayırıcılar, sınıfın depolamayı nasıl yöneteceğini belirtir. C++ Standart Kitaplığı kapsayıcı sınıfları ile sağlanan varsayılan ayırıcılar çoğu programlama gereksinimi için yeterlidir. Kendi ayırıcı sınıfınızı yazmak ve kullanmak gelişmiş bir C++ özelliğidir.

Örnek

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

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

Belirtilen konumda vektöre bir öğe veya birçok öğe ya da öğe aralığı ekler.

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

Parametreler

position
Vektörde ilk öğenin eklendiği konum.

value
Vektöre eklenen öğenin değeri.

count
Vektöre eklenen öğelerin sayısı.

first
Kopyalanacak öğe aralığındaki ilk öğenin konumu.

last
Kopyalanacak öğe aralığının ötesindeki ilk öğenin konumu.

Dönüş değeri

İlk iki insert işlev, yeni öğenin vektöre eklendiği konumu gösteren bir yineleyici döndürür.

Açıklamalar

Bir önkoşul olarak ve firstlast vektörde yineleyici olmamalıdır veya davranış tanımlanmamıştır. Herhangi bir ekleme işlemi pahalı olabilir. Performans tartışması için bkzvector. sınıf.vector

Örnek

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

Vektördeki herhangi bir öğeyi okuyabilen veya değiştirebilen rastgele erişim yineleyicisi sağlayan bir tür.

typedef implementation-defined iterator;

Açıklamalar

Bir öğenin değerini değiştirmek için bir tür iterator kullanılabilir.

Örnek

örneğine beginbakın.

max_size

Vektör uzunluğu üst sınırını döndürür.

size_type max_size() const;

Dönüş değeri

Vektörünün mümkün olan en uzun uzunluğu.

Örnek

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

operator[]

Vektör öğesine belirtilen konumda bir başvuru döndürür.

reference operator[](size_type position);

const_reference operator[](size_type position) const;

Parametreler

position
Vektör öğesinin konumu.

Dönüş değeri

Belirtilen konum kapsayıcısının boyutuna eşit veya ondan daha büyük ise, sonuç tanımsızdır.

Açıklamalar

dönüş değeri operator[] bir const_referenceöğesine atanmışsa vektör nesnesi değiştirilemez. dönüş değeri operator[] bir başvuruya atanmışsa vektör nesnesi değiştirilebilir.

1 veya 2 olarak tanımlanan kullanılarak _ITERATOR_DEBUG_LEVEL derlendiğinde, vektör sınırlarının dışındaki bir öğeye erişmeye çalıştığınızda bir çalışma zamanı hatası oluşur. Daha fazla bilgi için bkz . İşaretli yineleyiciler.

Örnek

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

operator=

Vektör öğelerini başka bir vektör kopyasıyla değiştirir.

vector& operator=(const vector& right);

vector& operator=(vector&& right);

Parametreler

right
içine vector kopyalanan vector.

Açıklamalar

bir vectoriçindeki mevcut öğeleri sildikten sonra içindekileri operator=right kopyalar veya içine vectortaşır.

Örnek

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

pointer

Vektördeki bir öğeye işaretçi sağlayan bir tür.

typedef typename Allocator::pointer pointer;

Açıklamalar

Bir öğenin değerini değiştirmek için bir tür pointer kullanılabilir.

Örnek

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

Vektörünün sonundaki öğesini siler.

void pop_back();

Açıklamalar

Kod örneği için bkz . vector::p ush_back().

push_back

Vektörünün sonuna bir öğe ekler.

void push_back(const T& value);

void push_back(T&& value);

Parametreler

value
Vektörünün sonuna eklenen öğeye atanacak değer.

Örnek

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

rbegin

Ters çevrilmiş vektördeki ilk öğeye bir yineleyici döndürür.

reverse_iterator rbegin();
const_reverse_iterator rbegin() const;

Dönüş değeri

Ters çevrilmiş bir vektördeki ilk öğeyi veya ters çevrilmeyen vektördeki son öğeyi ele alan ters rastgele erişim yineleyicisi.

Açıklamalar

dönüş değeri rbegin bir const_reverse_iteratoröğesine atanmışsa vektör nesnesi değiştirilemez. dönüş değeri rbegin bir reverse_iteratoröğesine atanmışsa vektör nesnesi değiştirilebilir.

Örnek

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

Vektörde depolanan bir öğeye başvuru sağlayan bir tür.

typedef typename Allocator::reference reference;

Örnek

Vektör sınıfında nasıl kullanılacağına reference ilişkin bir örnek için bkzat.

rend

Ters çevrilmiş vektörünün son öğesini izleyen öğeye işaret eden bir geçmiş uç ters yineleyici döndürür.

const_reverse_iterator rend() const;
reverse_iterator rend();

Dönüş değeri

Ters çevrilmiş vektör için arka uç yineleyicisi. Ters çevrilmiş vektörünün son öğesini izleyen öğeye işaret eder. Bu öğe, ters çevrilmeyen vektörünün ilk öğesinden önceki öğeyle aynıdır. Bu öğe bir yer tutucudur ve başvurulmamalıdır. Bunu yalnızca karşılaştırmalar için kullanın.

Açıklamalar

rend aynı vektörde kullanıldığı gibi end ters çevrilmiş bir vektörle kullanılır.

dönüş değeri rend öğesine const_reverse_iteratoratanmışsa vektör nesnesi değiştirilemez. dönüş değeri rend öğesine reverse_iteratoratanmışsa vektör nesnesi değiştirilebilir.

rend bir ters yineleyicinin vektörünün sonuna ulaşıp ulaşmadığını test etmek için kullanılabilir.

tarafından rend döndürülen değer başvurulmamalıdır. Bunu yalnızca karşılaştırmalar için kullanın.

Örnek

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

Bir vektör nesnesi için en düşük depolama uzunluğunu ayırarak gerekirse alan ayırır.

void reserve(size_type count);

Parametreler

count
Vektör için ayrılacak en düşük depolama uzunluğu.

Örnek

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

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

   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

Vektör için yeni bir boyut belirtir.

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

Parametreler

new_size
Vektörünün yeni boyutu.

value
Yeni boyut özgün boyuttan daha büyükse vektöre eklenen yeni öğelerin başlatma değeri. Değer atlanırsa, yeni nesneler varsayılan oluşturucularını kullanır.

Açıklamalar

Kapsayıcının boyutu istenen boyuttan küçükse, new_sizeresize istenen boyuta ulaşana kadar vektöre öğeleri ekler. Kapsayıcının boyutu istenen boyuttan büyük olduğunda, resize boyutuna new_sizeulaşana kadar kapsayıcının sonuna en yakın öğeleri siler. Kapsayıcının mevcut boyutu istenen boyutla aynıysa hiçbir işlem yapılmaz.

size vektörünün geçerli boyutunu yansıtır.

Örnek

// 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 << endl << "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);
}

reverse_iterator

Ters çevrilmiş vektördeki herhangi bir öğeyi okuyabilen veya değiştirebilen rastgele erişim yineleyicisi sağlayan bir tür.

typedef std::reverse_iterator<iterator> reverse_iterator;

Açıklamalar

Vektörde tersten yinelemek için bir tür reverse_iterator kullanılır.

Örnek

örneğine rbeginbakın.

shrink_to_fit

Fazla kapasiteyi atar.

void shrink_to_fit();

Örnek

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

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

   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

Vektördeki öğelerin sayısını döndürür.

size_type size() const;

Dönüş değeri

Vektörünün geçerli uzunluğu.

Örnek

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

Bir vektördeki öğe sayısını sayan bir tür.

typedef typename Allocator::size_type size_type;

Örnek

örneğine capacitybakın.

swap

İki vektörünün öğelerini değiştirir.

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

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

Parametreler

right
Değiştirilecek öğeleri sağlayan bir vektör. Veya, öğeleri vektördeki öğelerle değiştirilecek bir vektör left.

left
Öğeleri vektördeki öğelerle değiştirilecek bir vektör right.

Örnek

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

Vektörde depolanan veri türünü temsil eden bir tür.

typedef typename Allocator::value_type value_type;

Açıklamalar

value_type , şablon parametresinin Typeeş anlamlısıdır.

Örnek

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

Bir vektör oluşturur. Aşırı yüklemeler belirli bir boyutta veya belirli bir değerin öğeleriyle bir vektör oluşturur. Ya da başka bir vektörünün tamamının veya bir bölümünün kopyası olarak. Bazı aşırı yüklemeler, kullanılacak ayırıcıyı belirtmenize de olanak sağlar.

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

Parametreler

allocator
Bu nesneyle kullanılacak kaynak ayırıcı sınıfı. get_allocator nesnesi için ayırıcı sınıfını döndürür.

count
Yapılı vektördeki öğelerin sayısı.

value
Yapılı vektördeki öğelerin değeri.

source
Oluşturulacak vektör bir kopya olacaktır.

first
Kopyalanacak öğe aralığındaki ilk öğenin konumu.

last
Kopyalanacak öğe aralığının ötesindeki ilk öğenin konumu.

init_list
initializer_list Kopyalanacak öğeleri içeren.

Açıklamalar

Tüm oluşturucular bir ayırıcı nesnesi (allocator) depolar ve vektörünü başlatır.

İlk iki oluşturucu boş bir başlangıç vektöru belirtir. İkinci oluşturucu, kullanılacak ayırıcı türünü (allocator) açıkça belirtir.

Üçüncü oluşturucu, sınıfı Typeiçin varsayılan değerde belirtilen sayıda (count) öğe yinelemesini belirtir.

Dördüncü ve beşinci oluşturucular değerinin value(count) öğelerinin tekrarını belirtir.

Altıncı oluşturucu vektörünün sourcebir kopyasını belirtir.

Yedinci oluşturucu vektöründe sourcehareket eder.

Sekizinci oluşturucu, öğeleri belirtmek için bir initializer_list kullanır.

Dokuzuncu ve onuncu oluşturucular bir vektörünün [first, last) aralığını kopyalar.

Örnek

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

Ayrıca bkz.

C++ Standart Kitaplığında İş Parçacığı Güvenliği
C++ Standart Kitaplığı Başvurusu