Returns the element with index idx (throws range-error exception if idx is out of range)
c.front()
Returns the first element (no check whether a first element exists)
c.back()
Returns the last element (no check whether a last element exists)
Iterator Functions
random-access iterator。所以可以用STL里的所有Algorithms。
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.cbegin()
Returns a constant random-access iterator for the first element (since C++11)
c.cend()
Returns a constant random-access iterator for the position after the last element (since C++11)
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
c.crbegin()
Returns a constant reverse iterator for the first element of a reverse iteration (since C++11)
c.crend()
Returns a constant reverse iterator for the position after the last element of a reverse iteration (since C++11)
Inserting and Removing Elements
Operation
Effect
c.push_back(elem)
Appends a copy of elem at the end
c.pop_back()
Removes the last element (does not return it)
c.insert(pos, elem)
Inserts a copy of elem before iterator position pos and returns the position of the new element
c.insert(pos, n, elem)
Inserts n copies of elem before iterator position pos and returns the position of the first new element (or pos if there is no new element)
c.insert(pos, beg, end)
Inserts a copy of all elements of the range [beg,end) before iterator position pos and returns the position of the first new element (or pos if there is no new element)
c.insert(pos, initlist)
Inserts a copy of all elements of the initializer list initlist before iterator position pos and returns the position of the first new element (or pos if there is no new element; since C++11)
c.emplace(pos, args…)
Inserts a copy of an element initialized with args before iterator position pos and returns the position of the new element (since C++11)
c.emplace_back(args…)
Appends a copy of an element initialized with args at the end (returns nothing; since C++11)
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(num)
Changes the number of elements to num (if size() grows new elements are created by their default constructor)
c.resize(num, elem)
Changes the number of elements to num (if size() grows new elements are copies of elem)
// Examples of Using Vector #include<vector> #include<iostream> #include<string> #include<algorithm> #include<iterator> usingnamespacestd; intmain() { // create empty vector for strings vector<string> sentence; //reserve memory for five elements to avoid reallocation sentence.reserve(5); // append some elements sentence.push_back("Hello,"); vector<string> temp; temp.push_back("how"); temp.push_back("are"); temp.push_back("you"); temp.push_back("?"); sentence.insert(sentence.end(), temp.begin(), temp.end()); //sentence.insert(sentence.end(), {"how", "are", "you", "?"}); // print elements separated with spaces copy(sentence.cbegin(), sentence.cend(), ostream_iterator<string>(cout, " ")); cout<<endl; // print "technical data" cout<<"max_size(): "<<sentence.max_size()<<endl; cout<<"size(): "<<sentence.size()<<endl; cout<<"capacity(): "<<sentence.capacity()<<endl; // swap second and fourth element swap(sentence[1], sentence[3]); // insert element "always" before element "?" sentence.insert(find(sentence.begin(), sentence.end(), "?"), "always"); //assign "!" to the last element sentence.back() = "!"; // print elements separated with spaces copy(sentence.cbegin(), sentence.cend(), ostream_iterator<string>(cout, " ")); cout<<endl; // print some "technical data" again cout<<"size(): "<<sentence.size()<<endl; cout<<"capacity(): "<<sentence.capacity()<<endl; // delete last two elements sentence.pop_back(); sentence.pop_back(); // shrink capacity (since C++11) sentence.shrink_to_fit(); // print some "technical data" again cout<<"size(): "<<sentence.size()<<endl; cout<<"capacity(): "<<sentence.capacity()<<endl; system("Pause"); }