- They are static, i.e. the amount of elements cannot be changed without compiling the program again
- An array cannot be copied into another away with the = operator
- An array cannot be initialized with an another array
- There is no way of knowing the current amount of actual elements without keeping constant score of the situation
In order to be able to use vector the library vector must be taken into use.
Any type of data can be put into a vector. All elements must be of the same type (just like with static arrays). vector is defined with <> notation:
vector< element_type > variable_name;
for example:
vector< int > numbers;
vector< string > names;
The vector is empty at initialization if no initial values are given:
vector< double > temperatures1( 5, 20.1 );
vector< double > temperatures2( 3 );
vector< double > temperatures3( temperatures2 );
now there are five elements in the vector temperatures1 with the value 20.1, all three elements in the vector temperatures2 have been initialized to 0.0 and the temperatures3 has the same contents as temperatures2.
Just like string, vector has its own functions.
vector <int> numbers(2,3);
//The elements in numbers are (3 3)
numbers.clear();
//numbers now empty
numbers.push_back(4);
numbers.push_back(10);
//Now the elements are (4 10)
numbers.push_back( numbers[1] );
//(4 10 10)
numbers.push_back( numbers.at( 0 ) );
//(4 10 10 4)
numbers.pop_back();
//(4 10 10)
// printing the contents
if( !numbers.empty() )
{
unsigned int i;
for( i = 0; i < numbers.size(); ++i )
{
cout << "numbers are: " << numbers[ i ] << " ";
}
cout << endl;
}
A vector can be assigned another vector of the same type with the = operator. Two vectors of the same type can be compared with ==, !=, <, >, <= and >= operators.
vector can be passed both as a value and a reference parameter like any ordinary variable:
vector<type> valueparam
vector<type>& referenceparam
In practice vector should always be passed as a reference parameter due to efficiency issues.
Reference: cplusplus, codesource, cppreference
2 comments:
vector< double > temperatures3( temperatures2 );
- what will happen here? If I change the value of temperatures2 afterwards, will it reflect on temperatures3?
No, it won't reflect on the vector temperatures3. Changing the value of temperature2 doesn't mean the size of vector will be changed. If we continue inserting values in the vector temperatures3 the size will be changed automatically.
Post a Comment