C++ Vektörü Nasıl Kullanılır

How Use C Vector



Tanıtım

Bir dizi, ardışık bellek konumlarındaki aynı nesne türlerinin bir dizisidir. Bir dizi, uzunluğunu artıramaz veya kısaltamaz. Bir vektör bir dizi gibidir, ancak uzunluğu artırılabilir veya azaltılabilir. Bu nedenle bir vektör, bir diziden çok daha fazla işleme sahiptir.

C++, tümü C++ Standart Kitaplığı'nı oluşturan birçok kitaplığa sahiptir. Bu kütüphanelerden biri de konteyner kütüphanesidir. Bir kap, bir nesneler topluluğudur ve koleksiyon üzerinde belirli işlemler gerçekleştirilebilir. C++ kapsayıcıları iki kümeye ayrılabilir: sıra kapsayıcıları ve ilişkisel kapsayıcıları. Dizi kapsayıcıları vektör, dizi (daha önce tartışılan diziyle aynı değil), deque, forward_list ve list'tir. Bunlar farklı koleksiyonlardır (dizi benzeri veri yapıları) ve her biri farklı değiş tokuşlar sunar.







Herhangi bir programcı bir vektör, bir dizi, bir deque, bir forward_list veya bir liste kullanmaya nasıl karar vereceğini bilmelidir. Bir programcı, sıradan bir diziyle ilişkili olandan daha fazla işlem gerektiren bir yapıya ihtiyaç duyduğunda, sıradan dizi kullanılmamalıdır.



Görev, dizinin ortasında sık sık ekleme ve silme içeriyorsa, bir liste veya forward_list kullanılmalıdır. Görev, bir dizinin başında veya sonunda sık sık eklemeler ve silmeler içeriyorsa, o zaman bir deque kullanılmalıdır. Bu tür işlemlere gerek olmadığında bir vektör kullanılmalıdır.



Bu makale, C++ vektörünün nasıl kullanılacağını gösterir. Bu makaleyi anlamak için biraz C++ işaretçileri, referanslar ve diziler bilgisine ihtiyacınız olacak.





Sınıf ve Nesneler

Sınıf, değişkenlerin atanmış değerlerinin olmadığı, birlikte çalışan bir dizi değişken ve işlevdir. Değişkenlere değerler atandığında, bir sınıf bir nesne haline gelir. Aynı sınıfa verilen farklı değerler farklı nesnelerle sonuçlanır; yani, farklı nesneler aynı sınıftan olabilir ancak farklı değerlere sahip olabilir. Bir sınıftan nesne oluşturmak, nesneyi başlatmak olarak da bilinir.

Vektör terimi bir sınıfı tanımlar. Bir vektörden oluşturulan bir nesne, programcı tarafından seçilen bir ada sahiptir.



Sınıftan bir nesneyi başlatmak için bir sınıfa ait bir fonksiyona ihtiyaç vardır. C++'da bu işlev, sınıfın adıyla aynı ada sahiptir. Sınıftan oluşturulan (örneklenen) farklı nesnelerin her birine programcı tarafından verilen farklı adları vardır.

Bir sınıftan nesne oluşturmak, nesneyi oluşturmak anlamına gelir; aynı zamanda nesnenin somutlaştırılması anlamına gelir.

Vektör Sınıfı

Vektör sınıfı zaten tanımlanmış ve kütüphanede. Vektör sınıfını kullanmak için, bir programcı vektör başlığını aşağıdaki ön işleme direktifiyle dosyaya dahil etmelidir:

#Dahil etmek

Başlık eklendiğinde, tüm vektör özelliklerine (veri üyeleri ve üye işlevleri) erişilebilir hale gelir. Sayım nesnesini uçbirime (konsol) veri çıkışı olarak kullanmak için, nesne başlığının da dahil edilmesi gerekir. Vektörle bir program yazmak için asgari olarak aşağıdaki başlıklar dahil edilmelidir:

#Dahil etmek
#Dahil etmek

Vektör Örnekleme

intahmak[10];

Yukarıda foo isimli ve eleman sayısı 10 olan bir dizinin bildirimi verilmiştir. Bu bir tamsayı dizisidir. Bir vektörün bildirimi benzerdir. Bir vektör için, vektör uzunluğu artabileceği veya azalabileceği için eleman sayısı isteğe bağlıdır.

Programda bu noktada, vektör sınıfı kütüphanede zaten tanımlanmış ve başlık eklenmiştir. Vektör aşağıdaki gibi somutlaştırılabilir:

saat::vektör <int>vtr(8);

Burada vektör, özel kurucu işlevine aittir. Vektörün tutacağı veri türü, açılı parantez içinde int'dir. Vtr terimi, programcı tarafından vektör için seçilen addır. Son olarak, parantez içindeki 8, vektörün sahip olacağı geçici tamsayı sayısıdır.

Std terimi, standart ad alanı anlamına gelir. Bu bağlamda, bu terimden sonra bir çift kolon gelmelidir. Herkes kendi vektör sınıf kitaplığını yazabilir ve kullanabilir. Ancak, C++ zaten vektör de dahil olmak üzere standart adlara sahip standart bir kitaplığa sahiptir. Standart bir ad kullanmak için standart adın önüne std:: gelmelidir. Standart bir ad için programda her seferinde std:: yazmaktan kaçınmak için program dosyası aşağıdaki gibi başlayabilir:

#Dahil etmek
#Dahil etmek
ad alanı std kullanarak;

Bir Fonksiyonu Aşırı Yüklemek

İki veya daha fazla farklı fonksiyon imzası aynı ada sahip olduğunda, bu ismin aşırı yüklendiği söylenir. Bir işlev çağrıldığında, argümanların sayısı ve türü hangi işlevin yürütüleceğini belirler.

Vektör Oluşturma

Bir vektör oluşturmak, bir vektör nesnesini başlatmak (yaratmak) anlamına gelir. Yapıcı işlevi aşağıdaki gibi aşırı yüklenmiştir:

vektör adı

Bu, sıfır uzunlukta ve T türünde bir vektör oluşturur. Aşağıdaki ifade, vtr adında, float türünde sıfır uzunlukta bir vektör oluşturur:

vektör<batmadan yüzmek>vtr;

vektör adı (n)

Bu, T tipinde n elemanlı bir vektör oluşturur. Dört kayan elemanlı bu vektör için bir ifade aşağıdaki gibidir:

vektör<batmadan yüzmek>vtr(4);

vektör adı (n, t)

Bu, t değerine başlatılan n öğeden oluşan bir vektör oluşturur. Aşağıdaki ifade, her öğenin 3.4 değerine sahip olduğu 5 öğeden oluşan bir vektör oluşturur:

vektör<batmadan yüzmek>vtr(5, 3.4);

Başlatma ile Oluşturma

Bir vektör, aşağıdaki iki yoldan biriyle aynı anda oluşturulabilir (oluşturulabilir) ve başlatılabilir:

vektör<batmadan yüzmek>vtr= {1.1, 2.2, 3.3, 4.4};

Veya

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};

Nesne adından hemen sonra parantez olmadığına dikkat edin. Nesne adından hemen sonra kullanılan parantezler, aşağıdaki gibi başlatıcı listesine sahip olmalıdır:

vektör<batmadan yüzmek>vtr({1.1, 2.2, 3.3, 4.4});

Bir vektör oluşturulabilir ve daha sonra başlatıcı listesiyle başlatılabilir. Bu durumda parantezler kullanılmayacaktır:

vektör<batmadan yüzmek>vtr;
vtr= {1.1, 2.2, 3.3, 4.4};

vektör V2 (V1)

Bu bir kopya oluşturucudur. V1 vektörünün bir kopyası olarak bir V2 vektörü oluşturur. Aşağıdaki kod bunu göstermektedir:

vektör<batmadan yüzmek>vtr1(5, 3.4);
vektör<batmadan yüzmek>vtr2(vtr1);

İnşaat Sırasında Vektör Atama

İnşaat sırasında, aşağıdaki gibi bir başkası atanırken boş bir vektör oluşturulabilir:

vektör<batmadan yüzmek>vtr1{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek>vtr2=vtr1;

İkinci ifade şuna eşdeğerdir:

vektör<batmadan yüzmek>vtr2= {1.1, 2.2, 3.3, 4.4};

vektör

Const vektör, öğeleri değiştirilemeyen bir vektördür. Bu vektördeki değerler salt okunurdur. Oluşturulduğunda, vektör aşağıdaki gibi görünür:

constvektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};

Bu vektör türünde eleman eklenemez veya kaldırılamaz. Ayrıca, hiçbir değer değiştirilemez.

Yineleyici ile Oluşturma

Bir şablon, bir veri türü için genel bir temsil sağlar. Bir yineleyici, bir kapsayıcının değerleri aracılığıyla taramanın genel bir temsilini sağlar. Yineleyicili bir vektör oluşturma sözdizimi aşağıdaki gibidir:

şablon<sınıf InputIterator>
vektör(InputIterator ilk,InputIterator son,consttahsisatçı& =tahsisatçı());

Bu, bu makalenin ilerleyen bölümlerinde ele alınacak olan belirtilen ayırıcıyı kullanarak [ilk, son) aralığı için bir vektör oluşturur.

Bir Vektörü Yok Etme

Bir vektörü yok etmek için, kapsam dışına çıkmasına izin verin ve yok etme işlemi otomatik olarak gerçekleştirilir.

Vektör Kapasitesi

size_type kapasite() const noexcept

Vektörün yeniden tahsis gerektirmeden tutabileceği toplam öğe sayısı, kapasite üye işlevi tarafından döndürülür. Bunun için bir kod segmenti aşağıdaki gibidir:

vektör<batmadan yüzmek>vtr(4);
intbirde=vtr.kapasite();
maliyet<<birde<< ' ';

Çıktı 4'tür.

yedek(n)

Bellek alanı her zaman serbestçe kullanılabilir değildir. Ekstra alan önceden rezerve edilebilir. Aşağıdaki kod segmentini göz önünde bulundurun:

vektör<batmadan yüzmek>vtr(4);
vtr.rezerv(6);
maliyet<<vtr.kapasite() << ' ';

Çıktı 6'dır. Yani, ayrılan ekstra alan 6 – 4 = 2 elemandır. İşlev void döndürür.

size() const noexcept

Bu, vektördeki öğelerin sayısını döndürür. Aşağıdaki kod bu işlevi gösterir:

vektör<batmadan yüzmek>vtr(4);
batmadan yüzmeks=vtr.boy();
maliyet<<s<< ' ';

Çıktı 4'tür.

sığdırmak için küçültmek()

Reserve() işleviyle bir vektöre ekstra kapasite verdikten sonra, vektör orijinal boyutuna sığacak şekilde küçültülebilir. Aşağıdaki kod bunu göstermektedir:

vektör<batmadan yüzmek>vtr(4);
vtr.rezerv(6);
vtr.sığdırmak için küçültmek();
ints=vtr.boy();
maliyet<<s<< ' ';

Çıktı 4'tür ve 6 değil. İşlev void döndürür.

yeniden boyutlandır(sz), yeniden boyutlandır(sz,c)

Bu, vektörü yeniden boyutlandırır. Yeni boyut eski boyuttan küçükse, sona doğru olan öğeler silinir. Yeni boyut daha uzunsa, sona doğru bazı varsayılan değerler eklenir. Belirli bir değer eklemek için resize() işlevini iki bağımsız değişkenle kullanın. Aşağıdaki kod parçası, bu iki işlevin kullanımını gösterir:

vektör<batmadan yüzmek>vtr1{1.1, 2.2, 3.3, 4.4};
vtr1.yeniden boyutlandırmak(2);
maliyet<< 'vtr1'in yeni boyutu:' <<vtr1.boy() << ' ';
vektör<batmadan yüzmek>vtr2{1.1, 2.2};
vtr2.yeniden boyutlandırmak(4, 8.8);
maliyet<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' ';

Çıktı aşağıdaki gibidir:

vtr1'in yeni boyutu: 2
vtr2: 1,1 2,2 8,8 8,8

Fonksiyonlar void döndürür.

boş() const noexcept

Bu işlev, vektörde hiçbir öğe yoksa true için 1 ve vektör boşsa false için 0 döndürür. Bir vektörün, herhangi bir kayan nokta değeri olmayan, kayan nokta gibi belirli bir veri türü için 4 konumu varsa, bu vektör boş değildir. Aşağıdaki kod bunu göstermektedir:

vektör<batmadan yüzmek>vtr;
maliyet<<vtr.boş() << ' ';
vektör<batmadan yüzmek>vt(4);
maliyet<<Böyleceboş() << ' ';

vektör<batmadan yüzmek>v(4,3.5);
maliyet<<v.boş() << ' ';

Çıktı aşağıdaki gibidir:

1
0
0

Vektör Öğe Erişimi

Bir vektör, bir dizi gibi alt komut dosyası oluşturulabilir (dizine eklenebilir). Endeks sayımı sıfırdan başlar.

vektörAdı[i]

vectorName[i] işlemi, i noktasındaki öğeye bir başvuru döndürür.NSvektör indeksi. Aşağıdaki kod, yukarıdaki vektör için 3.3 çıktısı verir:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
batmadan yüzmekfl=vtr[2];
maliyet<<fl<< ' ';

vektörAdı[i] const

Vektör sabit bir vektör olduğunda, vectorName[i] const işlemi, vectorName[i] yerine yürütülür. Bu işlem aşağıdaki kodda kullanılır:

constvektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
batmadan yüzmekfl=vtr[2];
maliyet<<fl<< ' ';

İfade, i öğesine sabit bir başvuru döndürürNSvektörün öğesi.

Subscript ile Değer Atama

Sabit olmayan bir vektöre aşağıdaki gibi bir değer atanabilir:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vtr[2] = 8.8;
maliyet<<vtr[2] << ' ';

Çıktı 8.8'dir.

vektörAdı.at(i)

vectorName.at(i), vectorName[i] gibidir, ancak vectorName.at(i) daha güvenilirdir. Aşağıdaki kod, bu vektörün nasıl kullanılması gerektiğini gösterir:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
batmadan yüzmekfl=vtr.NS(2);
maliyet<<fl<< ' ';
NS()bir vektör üyesidirişlev.

vektörAdı.at(i) const

vectorName.at(i) const, vectorName[i] const gibidir, ancak vectorName.at(i) const daha güvenilirdir. Vektör sabit bir vektör olduğunda, vectorName.at(i) yerine vectorName.at(i) const yürütülür. Bu vektör aşağıdaki kodda kullanılır:

constvektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
batmadan yüzmekfl=vtr.NS(2);
maliyet<<fl<< ' ';
NS() constbir vektör üyesidirişlev.

at() Fonksiyonu ile Değer Atama

at() işleviyle sabit olmayan bir vektöre aşağıdaki gibi bir değer atanabilir:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vtr.NS(2) = 8.8;
maliyet<<vtr[2] << ' ';

Çıktı 8.8'dir.

Alt Komut Dosyası Oluşturma Sorunu

Alt komut dosyası oluşturma (dizin oluşturma) ile ilgili sorun, dizin aralık dışındaysa, sıfır döndürülebilir veya çalışma zamanında bir hata verilebilir.

ön()

Bu, öğeyi kaldırmadan vektörün ilk öğesine bir başvuru döndürür. Aşağıdaki kodun çıktısı 1.1'dir.

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
batmadan yüzmekfl=vtr.ön();
maliyet<<fl<< ' ';

Öğe vektörden kaldırılmaz.

ön() const

Vektör yapısından önce const olduğunda, front() yerine front() const ifadesi yürütülür. Bu, aşağıdaki kodda kullanılır:

constvektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
batmadan yüzmekfl=vtr.ön();
maliyet<<fl<< ' ';

Sabit bir başvuru döndürülür. Öğe vektörden kaldırılmaz.

geri()

Bu, öğeyi kaldırmadan vektörün son öğesine bir başvuru döndürür. Aşağıdaki kodun çıktısı 4.4'tür.

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
batmadan yüzmekfl=vtr.geri();
maliyet<<fl<< ' ';

geri() const

Vektör yapısından önce const olduğunda, back() yerine const ifadesi çalıştırılır. Bu, aşağıdaki kodda kullanılır:

constvektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
batmadan yüzmekfl=vtr.geri();
maliyet<<fl<< ' ';

Sabit bir başvuru döndürülür. Öğe vektörden kaldırılmaz.

Vektör Veri Erişimi

data() noexcept; data() const noexcept;

Bunlardan herhangi biri, [data(), data() + size()) geçerli bir aralık olacak şekilde bir işaretçi döndürür.

Bu, makalenin ilerleyen bölümlerinde daha ayrıntılı olarak ele alınacaktır.

Yineleyiciler ve Vektörün Döndürülmesi

Bir yineleyici, bir işaretçi gibidir, ancak bir işaretçiden daha fazla işlevselliğe sahiptir.

start() noexcept

Aşağıdaki kod segmentinde olduğu gibi vektörün ilk öğesine işaret eden bir yineleyici döndürür:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek> ::yineleyiciyineleme=vtr.başlamak();
maliyet<< *yineleme<< ' ';

Çıktı 1.1'dir. Yineleyiciyi alan bildirimin bildirildiğini unutmayın. Değeri bir işaretçinin başvurusunun kaldırılmasıyla aynı şekilde elde etmek için bir dönüş ifadesinde yineleyicinin başvurusu kaldırılır.

start() const noexcept;

Vektörün ilk öğesine işaret eden bir yineleyici döndürür. Vektör yapısından önce const olduğunda, start() yerine startup() const ifadesi yürütülür. Bu koşul altında, vektördeki karşılık gelen eleman değiştirilemez. Bu, aşağıdaki kodda kullanılır:

constvektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek> ::const_iteratoryineleme=vtr.başlamak();
maliyet<< *yineleme<< ' ';

Çıktı 1.1'dir. Döndürülen yineleyiciyi almak için bu sefer yalnızca yineleyici yerine const_iterator kullanıldığını unutmayın.

end() noexcept

Vektörün son öğesinin hemen ötesine işaret eden bir yineleyici döndürür. Aşağıdaki kod segmentini göz önünde bulundurun:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek> ::yineleyiciyineleme=vtr.son();
maliyet<< *yineleme<< ' ';

Çıktı 0'dır ve son öğenin ötesinde somut bir öğe olmadığı için anlamsızdır.

end() const noexcept

Vektörün son öğesinin hemen ötesine işaret eden bir yineleyici döndürür. Vektör yapısından önce const olduğunda, end() yerine end() const ifadesi yürütülür. Aşağıdaki kod segmentini göz önünde bulundurun:

constvektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek> ::const_iteratoryineleme=vtr.son();
maliyet<< *yineleme<< ' ';

Çıktı 0'dır. Döndürülen yineleyiciyi almak için bu sefer yalnızca yineleyici yerine const_iterator kullanıldığını unutmayın.

Ters yineleme

Sondan ilk öğenin hemen öncesine kadar yinelenen bir yineleyiciye sahip olmak mümkündür.

rbegin() noexcept

Aşağıdaki kod segmentinde olduğu gibi vektörün son öğesine işaret eden bir yineleyici döndürür:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek> ::ters_iteratörrİter=vtr.yeniden başlamak();
maliyet<< *rİter<< ' ';

Çıktı 4.4'tür.

Ters yineleyiciyi alan bildirimin bildirildiğini unutmayın. Değeri bir işaretçinin başvurusunun kaldırılmasıyla aynı şekilde elde etmek için bir dönüş ifadesinde yineleyicinin başvurusu kaldırılır.

rbegin() const noexcept;

Vektörün son öğesine işaret eden bir yineleyici döndürür. Vektör yapısından önce const geldiğinde, rbegin() yerine rbegin() const ifadesi yürütülür. Bu koşul altında, vektördeki karşılık gelen eleman değiştirilemez. Bu özellik aşağıdaki kodda kullanılır:

constvektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek> ::const_reverse_iteratorrİter=vtr.yeniden başlamak();
maliyet<< *rİter<< ' ';

Çıktı 4.4'tür.

Döndürülen yineleyiciyi almak için bu sefer sadece reverse_iterator yerine const_reverse_iterator kullanıldığını unutmayın.

render () hariç

Vektörün ilk öğesinden hemen önce işaret eden bir yineleyici döndürür. Aşağıdaki kod segmentini göz önünde bulundurun:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek> ::ters_iteratörrİter=vtr.yapar();
maliyet<< *rİter<< ' ';

Çıktı 0'dır ve ilk elemandan hemen önce somut bir eleman olmadığı için anlamsızdır.

render () const noexcept

Vektörün ilk öğesinden hemen önce işaret eden bir yineleyici döndürür. Vektör yapısından önce const olduğunda, rend() yerine rend() const ifadesi yürütülür. Aşağıdaki kod segmentini göz önünde bulundurun:

constvektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek> ::const_reverse_iteratorrİter=vtr.yapar();
maliyet<< *rİter<< ' ';

Çıkış 0'dır.

Döndürülen yineleyiciyi almak için bu sefer sadece reverse_iterator yerine const_reverse_iterator kullanıldığını unutmayın.

Vektör Değiştiriciler

Vektörü değiştiren bir değiştirici, bir yineleyici alabilir veya döndürebilir.

a.emplace(p, argümanlar)

p'den önce std::forward(args)… ile oluşturulmuş T türünde bir nesne ekler.

Ayrıntılar için - sonra bakın

insert(iteratorPosition, değer)

Vektörün yineleyici konumuna değerin bir kopyasını ekler. Kopyanın yerleştirildiği vektördeki yineleyiciyi (konum) döndürür. Aşağıdaki kod, değerin nereye yerleştirildiğini gösterir:

vektör<int>vtr{10, yirmi, 30, 40};
vektör<int> ::yineleyiciyineleme=vtr.başlamak();
++yineleme;
++yineleme;
vtr.sokmak(yineleme, 25);
maliyet<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3] << ' ';

Çıktı: 20 25 30.

Yineleyicinin tıpkı bir işaretçi gibi ilerletildiğini (artırıldığını) unutmayın.

Aşağıdaki kodda gösterildiği gibi bir başlatıcı listesi de eklenebilir:

vektör<int>vtr{10, yirmi, 30, 40};
vektör<int> ::yineleyiciyineleme=vtr.başlamak();
++yineleme;
++yineleme;
vtr.sokmak(yineleme, {25, 28});

maliyet<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3]<< '' <<vtr[4] << ' ';

Çıktı: 20 25 28 30.

sil(konum)

Yineleyicinin gösterdiği konumdaki bir öğeyi kaldırır, ardından yineleyici konumunu döndürür. Aşağıdaki kod bunu göstermektedir:

vektör<int>vtr{10, yirmi, 30, 40};
vektör<int> ::yineleyiciyineleme=vtr.başlamak();
++yineleme;
++yineleme;
vtr.silmek(yineleme);
maliyet<<vtr[0] << '' <<vtr[1] << '
'
<<vtr[2]<< ' ';

Çıktı: 10 20 40

push_back(t), push_back(rv)

Vektörün sonuna tek bir eleman eklemek için kullanılır. push_back(t) öğesini aşağıdaki gibi kullanın:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vtr.Geri itmek(5.5);
batmadan yüzmekfl=vtr[4];
maliyet<<fl<< ' ';

Çıktı 5.5'tir.

Geri itmek(karavan): -Daha sonra bakın.

pop_back()

Son elemanı döndürmeden kaldırır. Vektörün boyutu 1 küçültülür. Aşağıdaki kod bunu göstermektedir:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vtr.pop_back();
batmadan yüzmeks=vtr.boy();
maliyet<<s<< ' ';

Çıktı 3'tür.

a. takas(b)

Aşağıdaki kod bölümünde gösterildiği gibi iki vektör değiştirilebilir:

vektör<batmadan yüzmek>vtr1{1.1, 2.2, 3.3, 4.4};
vektör<batmadan yüzmek>vtr2{10, yirmi};
vtr1.takas(vtr2);
maliyet<< 'vtr1:'<<vtr1[0] <<''<<vtr1[1] <<'
'
<<vtr1[2] <<''<<vtr1[3] << ' ';

maliyet<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' ';

Çıktı:

vtr1: 10 yirmi 0 0
vtr2: 1.1 2.2 3.3 4.4

Gerekirse bir vektörün uzunluğunun arttığına dikkat edin. Ayrıca, değiştirmeleri olmayan değerler bazı varsayılan değerlerle değiştirilir.

açık()

Aşağıdaki kod segmentinde gösterildiği gibi tüm öğeleri vektörden kaldırır:

vektör<batmadan yüzmek>vtr{1.1, 2.2, 3.3, 4.4};
vtr.açık();
maliyet<<vtr.boy() << ' ';

Çıkış 0'dır.

Vektörler için Eşitlik ve İlişkisel Operatörler

== Operatör

İki vektör aynı boyuta sahipse ve karşılık gelen öğeler eşitse true için 1 döndürür; aksi halde false için 0 döndürür. Örneğin:

vektör<int>sen{1, 2, 3};
vektör<int>V{4, 5, 6};
bool bl=sen==V;
maliyet<<bl<< ' ';

Çıkış 0'dır.

!= Operatörü

İki vektör aynı boyuta sahip değilse ve/veya karşılık gelen öğeler eşit değilse true için 1 döndürür; aksi halde false için 0 döndürür. Örneğin:

vektör<int>sen{1, 2, 3};
vektör<int>V{4, 5, 6};
bool bl=sen! =V;
maliyet<<bl<< ' ';

Çıktı 1'dir.

NS

İlk vektör, iki eşit bölümün öğeleri aynı ve aynı sırada olacak şekilde ikinci vektörün ilk alt kümesiyse, true için 1 döndürür. Her iki vektör de aynı boyutta ve soldan sağa hareket ediyorsa ve birinci vektörde ikinci vektördeki karşılık gelen öğeden daha küçük bir öğeyle karşılaşılırsa, yine de 1 döndürülür. Aksi takdirde, false için 0 döndürülür. Örneğin:

vektör<int>sen{3, 1, 1};
vektör<int>V{3, 2, 1};
bool bl=sen<V;
maliyet<<bl<< ' ';

Çıktı 1'dir.

> Operatör

İade! (U

NS<= Operator

U döndürür<= V, where U is the first vector and V is the second vector, according to the above definitions.

>= Operatör

İade! (U<= V), where U is the first vector and V is the second vector, according to the above definitions.

Çözüm

Bir vektör, bir dizi kapsayıcısının bir örneğidir. Bir vektör, sıradan dizinin daha iyi bir biçimidir ve bir sınıftan başlatılır. Vektörler, yapım ve atama, kapasite, eleman erişimi, veri erişimi, yineleyiciler, değiştiriciler ve sayısal aşırı yüklenmiş operatörler altında sınıflandırılan yöntemlere sahiptir.

list, forward_list ve array olarak adlandırılan başka dizi kapları vardır. Görev, dizinin ortasında sık sık ekleme ve silme içeriyorsa, bir liste veya forward_list kullanılmalıdır. Görev, dizinin başında veya sonunda sık sık eklemeler ve silmeler içeriyorsa, bir deque kullanılmalıdır. Dolayısıyla vektörler sadece bu tür işlemlerin önemli olmadığı durumlarda kullanılmalıdır.