Or login with:
#include <vector> namespace std { template <class T, class Allocator=allocator<T>> class vector; }
std::vector<int> a; // creates an empty vector of integer type std::vector<float> b(10); // create a vector with 10 float types.With access to the vector contains performed in the usual C way:
std::cout<<a[0]<<std::endl; std::cout<<b[2]<<std::endl;The optional second parameter defines the memory model, which by default is an
allocator.iterators are also random access iterators, therefore vectors can be used with any algorithm within STL.
Vectors provide good performance if you append (or delete) elements from the end of the container. If you insert or delete from any other position then the performance is poor, with every element after the insertion or deletion point being moved to maintain an ordered and continuous array of elements.reserve command when you instantiate the container, i.e.
std::vector<int> v; v.reserve(80); // reserve memory for 80 elementsthis is equivalent to
std::vector<T> v(80);
| Operation | Effect |
|---|---|
| vector< El > c | Creates an empty vector without any elements |
| vector< El > c1(c2) | Creates a copy of another vector of the same type |
| vector< El > c(n) | Creates a vector with n elements that are created using the default constructor of El |
| vector< El > c(n,el) | Creates a vector initialized with n copies of element el |
| vector< El > c(begin,end) | Creates a vector initialized with the elements from another container, defined by its iterators (begin, end) |
| c.~vector< El >() | Destroys all elements and frees the memory |
| Operation | Effect |
|---|---|
| c.size() | Returns the actual number of elements in the container |
| c.empty() | Returns if the container is empty |
| c.max_size() | Returns the maximum number of possible elements |
| capacity() | Returns the maximum possible number of elements without memory reallocation |
| reserve() | Enlarges the current max capacity of the container |
| c1==c2 | Returns if c1 is equal to c2 |
| c1!=c2 | Returns if c1 is not equal to c2 |
| c1<c2 | Returns if c1 is less than c2 |
| c1>c2 | Returns if c1 is greater than c2 |
| c1<=c2 | Returns if c1 is less than or equal to c2 |
| c1>=c2 | Returns if c1 is greater than or equal to c2 |
| Operation | Effect |
|---|---|
| c1=c2 | Assigns all elements of c2 to c1 |
| c.assign(b,elem) | Assigns n copies of element elem |
| c.assign(begin,end) | Assigns the elements of the range [begin, end] |
| c1.swap(c2) | Swaps the data of c1 and c2 |
| swap(c1,c2) | Same (as global function) |
| Operation | Effect |
|---|---|
| c.at(i) | Returns the element with index i (throws range error exception if i is out of range) |
| c[i] | Returns the element with index i (without range checking) |
| c.front() | Returns the first element (no check if there is a first element) |
| c.back() | Returns the last element (no check if there is a last element) |
| Operation | Effect |
|---|---|
| c.begin() | Returns a random access iterator for the first element |
| c.end() | Returns a random access iterator for the position after the last element |
| c.rbegin() | Returns a reverse iterator for the first element of a reverse iteration |
| c.rend() | Returns a reverse iterator for the position after the last element of a reverse iteration |
| Operation | Effect |
|---|---|
| c.insert(pos,El) | Inserts at iterator position pos a copy of El and returns the position of the new element |
| c.insert(pos,nrEl,El) | Inserts at iterator position pos, nrEl copies of El (returns nothing) |
| c.insert(pos,beg,end) | Inserts at iterator position pos a copy of all elements of the range [beg,end) (returns nothing) |
| c.push_back(El) | Appends a copy of El at the end |
| c.pop_back() | Removes the last element (does not return it) |
| c.erase(pos) | Removes the element at iterator position pos and returns the position of the next element |
| c.erase(beg,end) | Removes all elements of the range [beg,end) and returns the position of the next element |
| c.resize(n) | Changes the number of elements to n (if size() grows new elements are created by their default constructor) |
| c.resize(n,El) | Changes the number of elements to n (if size() grows new elements are copies of El |
| c.clear() | Removes all elements |
#include<iostream> #include<vector> using namespace std; typedef vector<int> INTVECTOR; const SIZE=4; void main(void) { //dynamically allocated vector initially contains no elements INTVECTOR Vect; for (int i=0;i<SIZE;i++) Vect.push_back((i+1)*100); //initializes the vector with [100, 200, 300, 400] cout <<"First element is "<<Vect.front()<<"."<<endl; cout <<"Last element is "<<Vect.back()<<"."<<endl; cout <<"The vector contains "<<Vect.size()<<" elements."<<endl; cout <<"Erase the last element."<<endl; Vect.erase(Vect.end()-1); //erase the last element in the vector cout <<"The new last element is "<<Vect.back()<<"."<<endl; cout <<"Erase the first element."<<endl; Vect.erase(Vect.begin()); // erase the first element in the vector cout <<"The new first element is "<<Vect.front()<<"."<<endl; cout <<"The vector contains "<<Vect.size()<<"elements."<<endl; }
You must login to leave a messge