1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| void assign(iterator first,iterator last)
void assign(size_type n,constT&el=T())
T&at(siz type n)
const T&at(size_type n)const
T&back()
const T&back()const
iterator begin()
const_iterator begin()const
siz_type capacity()
void clear()
bool empty()const
iterator end()
const_iterator end()const
iterator erase(teator i)
iterator erase(iterator fist,iterator last)
T& front()
const T& front()const
iterator insert(iterator const T& el=T())
void insert(iterator i,size_type n, const T&el)
void insert(iterator i,iterator fist,iterator last)
size _type max_sizt()const
T&operator[]
const T& operatof[]const
void pop_back()
void push_back(const T& el)
reverse_iterator rbegin()
const_reverse_iterator rbegin()const
reverse_iterator rend()
const_reverse_iternator rend()const
void reserve(size_type n)
void reverse()
void resize(size_type n,const T&el=T))
size_type size()const
void swap(vector<T>&v)
vector()
vector(siz_type n, const T&el=T())
vector(iterator fist,iterator last)
vector(const vector<T>& v)
|
sort()排序函数
排序算法具有同样的灵活性,在对向量v5排序的例子中,v5是以升序来排序的。那么v5如何
按降序排序呢?方法之一先对向量进行升序排序,然后用 reverse()算法来反转向量。另一种方法是
强制sort0算法在得出结果时使用>运算符。为此,可以直接把函数对象作为参数∶
1 2 3 4 5 6 7 8
| sort(v5.begin(),v5.end(),greater<int>());
sort(v5.begin(),v5.end(),f2); bool f2(int m,int n){ return m > n ; }
|
greater()函数
头文件 #include
STL已定义的函数,这个函数对象定义为模板结构,实际上该函数重载了运算符>。
函数size(): 返回向量当前的元素数目(即:向量大小)
函数capacity():返回向量能够拥有的元素数目(即:向量的容量)
函数resize() :可以改变函数的容量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| #include <iostream> #include <vector> using namespace std;
void main(int arhc, const char * argv[]) { int a[] = { 1,2,3,4,5 }; int b[] = {0}; vector<int> v1; for (int j = 1; j <= 5; j++) { v1.push_back(j); } cout << "v1:" << v1.size() << endl;
vector<int> v2(3, 7);
cout << "v2:" << v2.size() << endl;
vector<int>::iterator i1 = v1.begin() + 1; vector<int> v3(i1, i1 + 3); cout << "v3:" << v3.at(2) << endl; v3[1] = v3.front(); for (SIZE_T i = 0; i < v3.size(); i++) { cout << "V3[" << i << "]" << v3[i] << endl; }
vector<int> v4(v1); vector<int> v5(5); v5[1] = v5.at(3)=9; v3.reserve(6); v4.resize(7); v4.resize(3); v4.clear(); v4.insert(v4.end(), v3[1]); v4.insert(v4.end(), v3.at(1)); v4.insert(v4.end(), 2, 4); v4.insert(v4.end(), v1.begin() + 1, v1.end() - 1); v4.erase(v4.end() - 2); v4.erase(v4.begin(), v4.begin() + 4); v4.assign(3, 8); v4.assign(a, a + 3);
replace(v5.begin(), v5.end(), 0, 7); printVector(v5);
const char *s = "Green"; vector<Person> v6(1,Person(s,25)); v6.push_back(Person("Ann", 30)); v6.push_back(Person("Bill", 20));
sort(v6.begin(), v6.end(),greater<Person>());
for (size_t i = 0; i < v6.size(); i++) { info manInfo = v6[i].getInfo(v6[i]); cout << manInfo.name << "今年" << manInfo.age << "了" << endl; }
sort(v6.begin(), v6.end(),lesserAge);
for (size_t i = 0; i < v6.size(); i++) { info manInfo = v6[i].getInfo(v6[i]); cout << manInfo.name << "今年" << manInfo.age << "了" << endl; }
return; }
|






