Functions in <algorithm> count()函数的一个例子: // count algorithm example #include <iostream> #include <algorithm> #include <vector> using namespace std; int main () { int mycount; // counting elements in array: int myints[] = {10,20,30,30,20,10,10,20}; // 8 elements mycount = (int) count (myints, myints+8, 10); cout << "10 appears " << mycount << " times.\n"; // counting elements in container: vector<int> myvector (myints, myints+8); mycount = (int) count (myvector.begin(), myvector.end(), 20); cout << "20 appears " << mycount << " times.\n"; return 0; } find()函数的一个例子: InputIterator find ( InputIterator first, InputIterator last, const T& value ); // find example #include <iostream> #include <algorithm> #include <vector> using namespace std; int main () { int myints[] = { 10, 20, 30 ,40 }; int * p; // pointer to array element: p = find(myints,myints+4,30); ++p; cout << "The element following 30 is " << *p << endl; vector<int> myvector (myints,myints+4); vector<int>::iterator it; // iterator to vector element: it = find (myvector.begin(), myvector.end(), 30); ++it; cout << "The element following 30 is " << *it << endl; return 0; } find_first_of()的例子 // find_first_of example #include <iostream> #include <algorithm> #include <cctype> #include <vector> using namespace std; bool comp_case_insensitive (char c1, char c2) { return (tolower(c1)==tolower(c2)); } int main () { int mychars[] = {'a','b','c','A','B','C'}; vector<char> myvector (mychars,mychars+6); vector<char>::iterator it; int match[] = {'A','B','C'}; // using default comparison: it = find_first_of (myvector.begin(), myvector.end(), match, match+3); if (it!=myvector.end()) cout << "first match is: " << *it << endl; // using predicate comparison: it = find_first_of (myvector.begin(), myvector.end(), match, match+3, comp_case_insensitive); if (it!=myvector.end()) cout << "first match is: " << *it << endl; return 0; } reverse()实现逆转 reverse_copy()实现逆转,不改变原来的字符串 sort() unique() erase() repalce() replacse_copy() 不改变原来的字符串或者是容器的内容 strlwr()将字符串变小写 strupr()将字符串变大写 strcmp()两个参数只能是c字符串,不能是string类型,也可以用s.data() template <class T> const T& max ( const T& a, const T& b ); template <class T, class Compare> const T& max ( const T& a, const T& b, Compare comp ); find_if()函数的例子: // find_if example #include <iostream> #include <algorithm> #include <vector> using namespace std; bool IsOdd (int i) { return ((i%2)==1); } int main () { vector<int> myvector; vector<int>::iterator it; myvector.push_back(10); myvector.push_back(25); myvector.push_back(40); myvector.push_back(55); it = find_if (myvector.begin(), myvector.end(), IsOdd); cout << "The first odd value is " << *it << endl; return 0; } map容器的操作: begin()返回指向第一个元素的迭代器 end()返回指向最后一个元素的迭代器 rbegin()返回指向最后一个元素的迭代器 rend()返回指向第一个元素的迭代器 empty()测试map容器是不是空的 size()返回容器的大小 max_size()返回容器最大的容量,这个是相对于内存来讲的 insert()向容器中插入元素 erase(it)删除容器当中it指向的元素,it为迭代器 erase('c')删除容器中键值为'c'的元素 eras(it, mymap.end())删除容器中it和mymap.end()之间的元素,它们两个都是迭代器 foo.swap(bar)交换容器foo和bar中的元素 clear()清空容器 find('b')返回指向键值为'b'的的迭代器,没有的话就指向end() count('c')查找键值为'c'的元素,在map中返回0或者1,0表示没有这个键值,1表示有,但是在mutimap中就是这个键值出现的次数 lower_bound('b')返回指向键值为'b'的迭代器,当没有这个键值时就返回空的迭代器 upper_bound('b')返回指向键值为'b'的下一个元素的迭代器,没有的话就返回空的迭代器 vector容器的操作: begin()返回指向第一个元素的迭代器 end()返回指向最后一个元素的迭代器 rbegin()返回指向最后一个元素的迭代器 rend()返回指向第一个元素的迭代器 size()返回容器的元素的个数 max_size()返回容器的最大的元素的个数 resize()重新调整容器的容量,无论原来的容量是大于还是小于后来的恶容量都可以 myvector.resize(5);将容器的容量调整为5,如果变短了就直接删除多余的元素,长了就用0将剩余的空间填满 myvector.resize(8,100);将容器的容量调整8,并将多出来的位置用100表示 myvector.resize(12);将容器的容量调整为12,多出的空间用0填充 capacity()返回这个容器在内存空间中最多的连续空间 empty()测试这个容器是不是空的 reserve()重新调整容器的capacity at(i)返回位置为i处得元素的引用,当超出容器的最后一个位置就抛出一个异常 front()返回第一个元素的引用 back()返回最后一个元素的引用 void assign ( InputIterator first, InputIterator last );将迭代器first和迭代器last之间的元素付给调用这个方法的容器 void assign ( size_type n, const T& u );将n个u付给容器 push_back()在容器的末尾添加元素 pop_back()删除容器最后面的一个元素 iterator insert ( iterator position, const T& x );在迭代器position的前面插入元素x void insert ( iterator position, size_type n, const T& x );在position的前面插入n个x template <class InputIterator> void insert ( iterator position, InputIterator first, InputIterator last );将迭代器first和last之间的元素插入到position前面 iterator erase ( iterator position );删除迭代器position指向的元素 iterator erase ( iterator first, iterator last );删除迭代器first和last之间的元素,不包括last指向的元素 void swap ( vector<T,Allocator>& vec );交换两个容器的元素 void clear ( );清空容器当中的元素 set容器(只存储值不相同的元素,并且按照从小到大的顺序排列) iterator begin ();返回指向set容器第一个元素的迭代器 iterator end ();返回指向容器最后一个元素的迭代器 reverse_iterator rbegin();返回指向容器最后一个元素的迭代器 reverse_iterator rend();返回指向容器第一个元素的迭代器 bool empty ( ) const;测试容器是否为空 size_type size() const;计算容器当中元素的个数 size_type max_size () const;计算容器的最大容量 pair<iterator,bool> insert ( const value_type& x );将元素x插入到set容器中返回pair对象,first元素为指向插入的元素的迭代器,second元素为指示插入成功与否的bool值 iterator insert ( iterator position, const value_type& x );将x插入 template <class InputIterator> void insert ( InputIterator first, InputIterator last );将first与last只见到恶元素插入到容器中 void erase ( iterator position );删除position位置处得元素 size_type erase ( const key_type& x );删除值为x的元素 void erase ( iterator first, iterator last );删除迭代器first和last之间的元素 void swap ( set<Key,Compare,Allocator>& st );交换两个set容器的元素 void clear ( );清空set容器 容器迭代器的操作 stack栈的操作: bool empty ( ) const;测试栈是不是空的返回1表示空0表示非空 size_type size ( ) const;返回当前栈的元素的个数 value_type top ( );返回当前的栈顶元素,不删除这个元素 const value_type top ( ) const;返回栈顶元素的const引用 void push ( const T& x );将当前的元素x入栈 void pop ( );删除栈顶元素 queue队列的操作: bool empty ( ) const;测试当前队列是不是空,0表示空,1表示非空 size_type size ( ) const;队列的元素的个数 value_type& front ( );返回队首元素的引用 const value_type front ( ) const;返回队首元素的const值 value_type& back ( );返回队尾元素的引用 const value_type& back ( ) const;返回队尾元素的const值 void push ( const T& x );将x入队列 void pop ( );删除队首元素 string类型的应用 string.c_str() 返回的是const char*而非char *,如果想返回char *的话可以这样写:char * a = (char*)string.c_str(); strtok()函数很好用,分割字符串
|
|