Push_back là một hàm của vector trong C++. Vector là gì? Hàm push_back được sử dụng như thế nào? Trong bài viết này sẽ giới thiệu đến các bạn sơ lược về vector cũng như hàm push_back trong C++. Nếu bạn đang quan tâm đến lĩnh vực này thì nhớ theo dõi bài viết dưới đây nhé.
Tìm hiểu về vector trong C++
Vector trong C++ là gì?
Giống như dynamic array (mảng động) nhưng vector trong C++ có khả năng tự động thay đổi kích thước khi một phần tử được chèn hoặc bị xóa đi tùy thuộc vào nhu cầu của tác vụ thực thi, với việc lưu trữ sẽ được vùng chứa tự động xử lý. Các phần tử vector được đặt trong contiguous storage (bộ nhớ liền kề) để chúng có thể được truy cập và duyệt thông qua cách sử dụng iterator.
Ưu điểm của vector trong C++
Vector trong C++ có một số ưu điểm nổi trội như sau:
- Thứ nhất, khi sử dụng, bạn không cần khai báo kích thước của mảng như int A[100]…, vector có khả năng tự động nâng kích thước lên.
- Thứ hai, nếu bạn thêm 1 phần tử vào vector đã đầy thì vector sẽ tự động tăng kích thước của nó lên để tạo chỗ chứa cho giá trị mới này.
- Vector còn có khả năng cho bạn biết số lượng các phần tử mà bạn đang lưu trong nó.
- Trong vector, bạn hoàn toàn có thể dùng số phần tử âm ví dụ A[-6], A[-5], điều này rất tiện trong việc cài đặt các giải thuật khác.
Vector cung cấp nhiều chức năng hữu ích khác nhau:
- Modifiers
- Iterators
- Capacity
- Element access
Tìm hiểu về hàm push_back trong C++
push_back trong C++ là hàm được sử dụng để thêm một phần tử mới vào cuối vectơ , sau phần tử cuối cùng hiện tại của nó. Điều này có hiệu quả làm tăng kích thước vùng chứa lên một, tạo ra tự động phân bổ lại không gian lưu trữ được cấp phát nếu kích thước vectơ mới vượt quá dung lượng vectơ hiện tại.
Hàm: vectorname.push_back (value)
Các thông số: Giá trị được thêm phía sau được truyền dưới dạng tham số
Kết quả : Thêm giá trị được đề cập dưới dạng tham số vào mặt sau của vector đặt tên như vectorname
Ví dụ 1:
Đầu vào: myvector = {1, 2, 3, 4};
myvector.push_back (5);
Đầu ra: 1, 2, 3, 4, 5
Ví dụ 2:
Đầu vào: myvector = {5, 4, 3, 2};
myvector.push_back (1);
Đầu ra: 5, 4, 3, 2, 1
Một số hàm khác của vector trong C++
Modifiers
- assign(): là hàm gán một giá trị mới cho các phần tử vector bằng cách thay thế giá trị cũ.
vectorname.assign(int size, int value);
- pop_back() là hàm trái ngược với hàm push_back trong C++. Hàm này được sử dụng để xóa đi phần tử ở cuối cùng một vector.
vectorname.pop_back();
- insert() là hàm dùng để chèn các phần tử mới vào trước phần tử trước vị trí được trỏ bởi vòng lặp.
vectorname.insert(position, value);
- erase(): Hàm được sử dụng để xóa các phần tử tùy theo vị trí của vùng chứa
vectorname.erase(position);
vectorname.erase(start-position, end-position);
- emplace(): là hàm mở rộng vùng chứa bằng cách chèn thêm các phần tử mới vào
vectorname.emplace(vectorname.position, element);
- emplace_back() là hàm được sử dụng để chèn thêm một phần tử mới vào vùng chứa vector, phần tử mới này sẽ được thêm vào cuối vector
vectorname.emplace_back(value);
- swap() là hàm được sử dụng để hoán đổi nội dung của một vector này với một vector khác mà 2 vector này đều cùng kiểu nhưng kích thước có thể khác nhau.
vectorname-1.swap(vectorname-2);
- clear(): Hàm này được sử dụng để xóa tất cả các phần tử trong vùng chứa vector.
vectorname.clear();
Iterators
- begin() là hàm đặt iterator đến phần tử ở đầu tiên trong vector.
vectorname.begin();
- end() là hàm đặt iterator đến sau phần tử ở cuối cùng trong vector.
vectorname.end();
- rbegin() là hàm đặt reverse iterator (trình lặp đảo) đến phần tử ở cuối cùng trong vector (reverse begin). Nó di chuyển từ phần tử cuối cùng đi đến phần tử đầu tiên.
vectorname.rbegin();
- rend(): đặt reverse iterator (trình lặp đảo) đến phần tử ở đầu tiên trong vector (reverse end).
vectorname.rend();
- cbegin(): đặt constant iterator (trình vòng lặp) đến phần tử ở đầu tiên trong vector.
vectorname.cbegin();
- cend(): đặt constant iterator (trình vòng lặp) đến phần tử ở cuối cùng trong vector.
vectorname.cend();
- crbegin(): đặt constant reverse iterator (trình lặp đảo liên tục) đến phần tử ở cuối cùng trong vector (reverse begin). Nó di chuyển từ phần tử ở cuối cùng đi đến phần tử ở đầu tiên.
vectorname.cbregin();
- crend(): đặt constant reverse iterator (trình lặp đảo liên tục) đến phần tử ở đầu tiên trong vector (reverse end).
vectorname.crend();
Capacity
- size(): hàm này sẽ cho biết số lượng phần tử đang được sử dụng trong vector.
ten-vector.size();
- max_size(): hàm này sẽ cho biết số phần tử tối đa mà vector có thể chứa.
ten-vector.max_size();
- capacity(): hàm này sẽ cho biết số phần tử được cấp phát cho vector nằm trong bộ nhớ.
ten-vector.capacity();
- resize(n): Hàm này dùng để thay đổi kích thước vùng chứa để nó chứa đủ n phần tử. Nếu kích thước hiện tại của vector lớn hơn n thì các phần tử ở phía sau sẽ bị xóa khỏi vector. Nếu kích thước hiện tại của vector nhỏ hơn n thì các phần tử bổ sung sẽ được chèn vào ở phía sau vector.
ten-vector.resize(int n, int value);
- empty(): hàm này cho biết liệu vùng chứa có trống hay không, nếu trống thì sẽ là True, nếu có phần tử thì sẽ là False
ten-vector.empty();
- shrink_to_fit() là hàm sử dụng để giảm dung lượng của vùng chứa để phù hợp với kích thước của nó và hủy bỏ tất cả các phần tử vượt quá dung lượng
ten-vector.shrink_to_fit();
- reserve(n) là hàm cấp cho vector số dung lượng đủ để chứa n phần tử
ten-vector.reserve(n);
Element access
- at(g): là hàm cho biết một tham chiếu đến phần tử ở vị trí ‘g’ trong vector.
ten-vector.at(position);
- data(): Hàm này trả về một con trỏ trực tiếp đến (memory array) bộ nhớ mảng được vector sử dụng để lưu trữ các phần tử thuộc sở hữu của nó.
ten-vector.data();
- front(): Hàm này dùng để lấy ra phần tử ở đầu tiên của vector.
ten-vector.front();
back(): Hàm này dùng để lấy ra phần tử ở cuối cùng của vector.
ten-vector.back();
Như vậy, trên đây, bài viết đã cung cấp một số thông tin về vector, hàm push_back trong C++ và một số hàm khác. Mong rằng những thông tin đã cung cấp ở bài viết sẽ có ích với bạn.