Vector Dev C++

Jul 20, 2015 記得小時候考程式檢定的時候,初學 vector,考試時就用 vector 開心解完閃人,而隔壁桌的還在用 C 慢慢刻,才初次見識到這個東西的強大,基本上寫 c 很建議使用 vector 取代低階的 array 和 pointer,比較易維護,容易除錯: ) 2015.7.22 初版. May 01, 2019  A vector is a one-dimensional object, you just go ahead and use it, either in a row context or in a column context. If you had, instead, an Nx1 array and you wanted a 1xN array, that is a different situation. In that case, you could take the trans. C Library - vector - Vectors are sequence container that can change size. Container is a objects that hold data of same type. Sequence containers store elements strictly in linear s.

Vector Dev C++
  • The C Standard Library
  • The C++ Standard Library
  • The C++ STL Library
  • C++ Programming Resources

C++ Vector Example

  • Selected Reading

Description

The C++ function std::vector::push_back() inserts new element at the end of vector and increases size of vector by one.

Declaration

Following is the declaration for std::vector::push_back() function form std::vector header.

C++98

C++11

Parameters

None

Return value

None.

Exceptions

This member function never throws exception.

Time complexity

Constant i.e. O(1)

Example

The following example shows the usage of std::vector::push_back() function.

Let us compile and run the above program, this will produce the following result −

vector.htm
  • The C Standard Library
  • The C++ Standard Library
  • The C++ STL Library
  • C++ Programming Resources
  • Selected Reading

Introduction

Vectors are sequence container that can change size. Container is a objects that hold data of same type. Sequence containers store elements strictly in linear sequence.

Vector stores elements in contiguous memory locations and enables direct access to any element using subscript operator []. Unlike array, vector can shrink or expand as needed at run time. The storage of the vector is handled automatically.

To support shrink and expand functionality at runtime, vector container may allocate some extra storage to accommodate for possible growth thus container have actual capacity greater than the size. Therefore, compared to array, vector consumes more memory in exchange for the ability to manage storage and grow dynamically in an efficient way.

Zero sized vectors are also valid. In that case vector.begin() and vector.end() points to same location. But behavior of calling front() or back() is undefined.

Definition

Below is definition of std::vector from <vector> header file

Parameters

  • T − Type of the element contained.

    T may be substituted by any other data type including user-defined type.

  • Alloc − Type of allocator object.

    By default, the allocator class template is used, which defines the simplest memory allocation model and is value-independent.

Member types

Following member types can be used as parameters or return type by member functions.

Sr.No.Member typesDefinition
1value_typeT (First parameter of the template)
2allocator_typeAlloc (Second parameter of the template)
3referencevalue_type&
4const_referenceconst value_type&
5pointervalue_type*
6const_pointerconst value_type*
7iteratora random access iterator to value_type
8const_iteratora random access iterator to const value_type
9reverse_iteratorstd::reverse_iterator <iterator>
10const_reverse_iteratorstd::reverse_iterator <const_iterator>
11size_typesize_t
12difference_typeptrdiff_t

Functions from <vector>

Below is list of all methods from <vector> header.

Constructors

Sr.No.Method & Description
1vector::vectordefault constructor

Constructs an empty container, with zero elements.

2vector::vectorfill constructor

Constructs a container with n elements and assignd val to each element.

3vector::vectorrange constructor

Constructs a container with as many elements in range of first to last.

4vector::vectorcopy constructor

Constructs a container with copy of each elements present in existing container x.

5vector::vectormove constructor

Constructs the container with the contents of other using move semantics.

6vector::vectorinitializer list constructor

Constructs a container from initializer list.

Destructor

Vector Dev C Software

Sr.No.Method & Description
1vector::~vector

Destroys container by deallocating container memory.

Member functions

Sr.No.Method & Description
1vector::assignfill version

Assign new values to the vector elements by replacing old ones.

2vector::assignrange version

Assign new values to the vector elements by replacing old ones.

3vector::assigninitializer list version

Assign new values to the vector elements by replacing old ones.

4vector::at

Returns reference to the element present at location n in the vector.

5vector::back

Returns a reference to the last element of the vector.

6vector::begin

Return a random access iterator pointing to the first element of the vector.

7vector::capacity

Returns the size of allocate storage, expressed in terms of elements.

8vector::cbegin

Returns a constant random access iterator which points to the beginning of the vector.

9vector::cend

Returns a constant random access iterator which points to the beginning of the vector.

10vector::clear

Destroys the vector by removing all elements from the vector and sets size of vector to zero.

11vector::crbegin

Returns a constant reverse iterator which points to the reverser beginning of the container.

12vector::crend

Returns a constant reverse iterator which points to the reverse end of the vector.

13vector::data

Returns a pointer to the first element of the vector container.

14vector::emplace

Extends container by inserting new element at position.

15vector::emplace_back

Inserts new element at the end of vector.

16vector::empty

Tests whether vector is empty or not.

17vector::end

Returns an iterator which points to past-the-end element in the vector container.

18vector::erase position version

Removes single element from the the vector.

19vector::erase range version

Removes single element from the the vector.

20vector::front

Returns a reference to the first element of the vector.

21vector::get_allocator

Returns an allocator associated with vector.

22vector::insertsingle element version

Extends iterator by inserting new element at position.

23vector::insertfill version

Extends vector by inserting new element in the container.

24vector::insertrange version

Extends vector by inserting new element in the container.

25vector::insertmove version

Extends vector by inserting new element in the container.

26vector::insertinitializer list version

Extends vector by inserting new element in the container.

27vector::max_size

Returns the maximum number of elements can be held by vector.

28vector::operator=copy version

Assign new contents to the vector by replacing old ones and modifies size if necessary.

29vector::operator=move version

Assign new contents to the vector by replacing old ones and modifies size if necessary.

30vector::operator =initializer list version

Assign new contents to the vector by replacing old ones and modifies size if necessary.

31vector::operator[]

Returns a reference to the element present at location n.

32vector::pop_back

Removes last element from vector and reduces size of vector by one.

33vector::push_back

Inserts new element at the end of vector and increases size of vector by one.

34vector::rbegin

Returns a reverse iterator which points to the last element of the vector.

35vector::rend

Returns a reverse iterator which points to the reverse end of the vector.

36vector::reserve

Requests to reserve vector capacity be at least enough to contain n elements.

37vector::resize

Changes the size of vector.

38vector::shrink_to_fit

Requests the container to reduce it's capacity to fit its size.

39vector::size

Returns the number of elements present in the vector.

40vector::swap

Exchanges the content of vector with contents of vector x.

Dev C++ Online

Non-member overloaded functions

C++ Vector Of Vectors Example

Sr.No.Method & Description
1operator

Tests whether two vectors are equal or not.

2operator !=

Tests whether two vectors are equal or not.

3operator <

Tests whether first vector is less than other or not.

4operator <=

Tests whether first vector is less than or equal to other or not.

5operator >

Tests whether first vector is greater than other or not.

6operator >=

Tests whether first vector is greater than or equal to other or not.

7swap

Exchanges the contents of two vector.