C++'da vektörler (vector )
C++'daki dinamik dizi türlerinden biri vektör (vektör) 'dür.
Vektör (vektör ) — zaten bir dinamik dizinin modeli olan bir veri yapısıdır.
C++'daki sıradan dizilerin, onlarla çalışmak için herhangi bir özel işlevi ve yöntemi yoktur. C++'daki vektörler, öğelerle çalışmak için daha fazla ek işlev içeren veri yapılarıdır.
Bir vektör oluşturma
#include <vektör>
...
int ana()
{
// 10 eleman için v tamsayı vektörünün bildirimi
vektör <int> v(10);
// sıfır başlangıç değerleri ile aynı (v1 vektörü)
vektör <int> v1(10, 0);
...
Vektör dolgusu
1. Yöntem
n -inci sayıda eleman için bellek ayırıyoruz ve bunları klavyeden okuyarak dolduruyoruz.
int;
cin>> N;
vektör a(n);
için (int ben = 0; ben
2. Yöntem
İkinci yöntem, eleman sayısı bilinmediğinde gereklidir. Önce boş bir vektör oluşturulur ve ardından push_back() yöntemi kullanılarak vektörün sonuna yeni bir öğe eklenir.
int;
cin>> N;
vektöra;
for (int ben = 0; ben
Vektör boyutu
int b = a.size();
|
Yineleyiciler
Kapsayıcılardaki (veri yapıları) öğeleri yinelemenin bir yolu yineleyici'dir ( yineleyici code>), bunların birkaç türü vardır.
Yineleyici - « ; bazı kapsayıcı öğede ve (bazı kapsayıcılar için) önceki/sonraki öğeye gidebilir.
Vektör, en güçlü - rastgele erişim yineleyiciyi(rastgele erişim yineleyici ) kullanır. Bir rasgele erişim yineleyici, sıralı harekete ek olarak vektörün rasgele bir öğesine erişebilir.
Yineleyicilerin Faydaları
1) Öğeleri silerken ve dizinleri ([] ) kullanarak öğeler üzerinde yineleme yaparken, vektörün ötesine geçmemek için kalan öğelerin sayısını her zaman takip etmemiz gerekir ve bir yineleyici kullanarak, vektörün sonunu belirten end()< /code> kullanabilir.
2) Bir yineleyici kullanarak, bir vektördeki öğeleri kolayca dinamik olarak kaldırabilir ve ekleyebilirsiniz.
Yineleyici bildirimi
1) Bir tamsayı vektörü için bir yineleyici bildirmek ve onu vektördeki ilk öğeye işaret etmek.
vektör <int> vektörüm = { 1, 2, 3, 4, 5 };
vektör <int>::iterator it = myvector.begin();
2) Bir tamsayı vektörü için yineleyici bildirmek ve bunu vektördeki son 'den sonraki öğeye işaret etmek.
vektör <int> vektörüm = { 1, 2, 3, 4, 5 };
vektör <int>::iterator it = myvector.end(); // son elemandan sonraki elemana işaret ediyor,
vektör <int>::iterator it1 = myvector.end() - 1 ; // son öğeyi işaret ediyor.
Bir değer alma ve görüntüleme
Yineleyici tarafından işaret edilen öğeyi alma ve görüntüleme.
cout
Yineleyici konumunu taşı
Yineleyici konumunu 3 konum ileri taşıyın.
ilerlemek(it, 3);
Mevcut bir yineleyiciden yeni bir yineleyici oluşturma
Mevcut olanı temel alan, 3 konum ilerleten yeni bir yineleyici oluşturun.
otomatik it1 = sonraki(it, 3);
Yineleyici kullanarak vektör değerlerini görüntüleme
vector<int>::iterator it;
for (it = myvector.begin(); o != myvector.end(); ++it) {
cout<<*it<<" ";
}
Vektör geçişi
Vektörü son öğeden ilk öğeye çaprazlamak için bir ters yineleyici reverse_iterator kullanılır, şu şekilde elde edilir:
1) rbegin() - vektörün son öğesini işaret eden bir ters yineleyici döndürür, ++ işleminin uygulanması önceki öğeye geçişe yol açar;
2) rend() - vektörün önceki öğesine işaret eden bir ters yineleyici döndürür, ++ işleminin uygulanması geçişe yol açar bir sonrakine.
vector<int>::reverse_iterator it = myvector.rbegin(); // son öğeyi işaret ediyor
vector<int>::reverse_iterator it = myvector.rend(); // bir öğeyi işaret ediyor,
// ilkinden önce gelen,
|