Basic Cpp: Vector

Vector di C++ STL

vector sama dengan array dinamic yang memiliki kemampuan untuk merize sendiri secara automatic ketika element dimulai atau dibuang.

Deklarasi Vector

#include <vector> 
// no need to specify length at initialization 
std::vector<int> array; 
// use initializer list to initialize array 
std::vector<int> array2 = { 9, 7, 5, 3, 1 }; 
// use uniform initialization to initialize array (C++11 onward)
std::vector<int> array3 { 9, 7, 5, 3, 1 };

Dari contoh diatas, kita tidak perlu menulis array length.

Accesing Vector

array[6] = 2; // no bounds checking

array.at(7) = 3; // does bounds checking

di C++11, kita dapat mengassign nilai dengan initializer-list:

array = { 0, 1, 2, 3, 4 }; // okay, array length is now 5

array = { 9, 8, 7 }; // okay, array length is now 3

Beberapa function yang berhubungan dengan vector:

push_back : menambah elemen di akhir

pop_back   : menghapus elemen terakhir

size             : menampilkan jumlah elemen pada vector

begin          : mengembalikan iterator ke awal vector

end             : mengembalikan iterator ke akhir vector

clear           : menghapus isi vector

capacity     : menampilkan jumlah elemen yang dapat ditampung oleh vector

front           : mengakses elemen pertama

back           : mengakses elemen terakhir

at                : mengakses elemen tertentu

erase          : menghapus elemen

Contoh:

save access version

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char** argv) {
  
  /*  Initialize vector of 10 copies of the integer 5 */
  vector<int> vectorOne(10,5);
  
  /*  run through the vector and display each element, if possible */
  for (long index=0; index<20; ++index) {
    try {
      cout << "Element " << index << ": " << vectorOne.at(index) << endl;
    }
    catch (exception& e) {
      cout << "Element " << index << ": index exceeds vector dimensions." << endl;
    }
  }
  
  return EXIT_SUCCESS;
}

unsafe access version

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char** argv) {
  
  /*  Initialize vector of 10 copies of the integer 5 */
  vector<int> vectorOne(10,5);
  
  /*  run through the vector and display each element, if possible */
  for (int index=0; index<20; ++index) {
    cout << vectorOne[index] << endl;
  }
  
  return EXIT_SUCCESS;
}

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *