Vector &Algorithm &DataContruct &Vector &C++

Vector

  1. Định nghĩa
    1. STL::Vector là Container nằm trong thư viện STL C++, là 1 mảng liên tục giống như mảng
    2. Ưu điểm:
      1. mang đầy đủ ưu điểm của mảng(array) : truy xuất trực tiếp ngẫu nhiên, dễ dàng tìm kiếm -> tối ưu hiệu suất
      2. Khắc phục nhược điểm lớn nhất của mảng: kích thước Vector là không cố định có thể mở rộng tùy ý
    3. Nhược điểm: về mặt bộ nhớ sẽ tốn hơn so với mảng bằng việc mở rộng bộ nhớ nhằm đắp ứng nhu cầu trong tương lai theo hướng gấp đôi lượng dữ liệu trước đã sử dụng -> có thể gây dư thừa bộ nhớ nếu không sử dụng hết
    4. Để có thể sử dụng List bạn cần khai báo thư viện STL và Lớp Containner List thông qua 2 dòng lệnh sau:
          #include< vector > // sử dụng lớp vector
          using namespace std; // câu lệnh quen thuộc khi viết C++,
                            
  2. Khởi tạo
    Cú pháp khởi tạo giống hệt so với List:
    1. Cú pháp: vector< kieu_du_lieu > ten_bien;
      VD: vector < int > myVector; // khai bao 1 vector có tên myVector với kiểu số nguyên
    2. Ngoài ra còn ta còn có 1 số Contructor khác được định nghĩa sẵn:
          // default vevtor
          vector < int > myVector; // empty list
          // khởi tạo Vector có 4 phần tử, các phần tử này được gán giá trị mặc định
          vector < int > myVector(4); // 0 0 0 0
          // khởi tạo Vector có 4 phần từ, các phần tử được gán giá trị
          vector < int > myVector(4,50); // 50 50 50 50
          // khở tạo 1 Vector từ việc copy giá trị của Vector khác
          vector < int > myVector(4,50); 50 50 50 50
          vector < int > copymyVector(myVector); // 50 50 50 50
                      
  3. Các hàm hay sử dụng
      1. bool empty(); // trả về true nếu rỗng và ngược lại
      2. int size(); // trả về kích thước của Vector
      3. void push_back(value); // thêm value vào cuối Vector, value có thể là giá trị or tên biến
      4. void pop_back(); // xóa phần tử cuối cùng khỏi Vector
      5. reference at(int i); or toán tử [] // trả về giá trị của phần tử thứ i trong Vector(như Array)
      6. void resize(int n); // thay đổi kích thước Vector, nếu là mở rộng: các giá trị mới gán bằng giá trị mặc định
      7. iterator erase (iterator position); // xóa phần tử có vị trí position trong dãy
        iterator erase (iterator first, iterator last); // xóa các phần tử nằm trong khoảng first -> last
      8. iterator insert (iterator position,value); //chèn giá trị value vào vị trí position
        void insert (iterator position,size n,value); //chèn n giá trị value từ vị trí position
        void insert (iterator position, InputIterator first, InputIterator last); // chèn các giá trị từ first -> last của vector này sang vector khác bắt đầu từ vị trí position
      9. Vector không có hàm sort như List tuy nhiên ta có thể sử dụng hàm sort trong thư viện Algorithm (#include < algorithm >)): sort(a.begin(),a.end());
      10. void reverse(); // đảo ngược các giá trị trong Vector
      11. void clear()// xóa hết các phần từ trong Vector
    1. Full code: Các bạn có thể tham khảo tại đây - chịu khó chút quảng cáo ạ