C++ Primer 学习中。。
。
简单记录下我的学习过程 (代码为主)
//全部容器适用
reverse(b,e) //逆转区间数据
reverse_copy(b,e,b2)
/**------http://blog.csdn.net/u010579068------**/ #include<iostream> #include<cstdio> #include<string> #include<vector> #include<list> #include<deque> #include<algorithm> using namespace std; /***************************************** //全部容器适用 reverse(b,e) //逆转区间数据 reverse_copy(b,e,b2) *****************************************/ /**---------------------------------------------------------------------------------- STL算法 - 变序性算法 reverse() //逆转 reverse_copy() rotate() //旋转 rotate_copy() next_permutation() prev_permutation() random_shuffle() partition() stable_partition() ----------------------------------------------------------------------------------**/ /************************************************************************************* std::reverse 全部排序容器适用 algorithm -------------------------------------------------------------------------------------- <algorithm>template <class BidirectionalIterator> void reverse ( BidirectionalIterator first, BidirectionalIterator last); //eg: template <class BidirectionalIterator> void reverse ( BidirectionalIterator first, BidirectionalIterator last) { while ((first!=last)&&(first!=--last)) swap (*first++,*last); } *************************************************************************************/ /************************************************************************************* std::reverse_copy 全部排序容器适用 algorithm -------------------------------------------------------------------------------------- template <class BidirectionalIterator, class OutputIterator> OutputIterator reverse_copy ( BidirectionalIterator first, BidirectionalIterator last, OutputIterator result ); //eg: template <class BidirectionalIterator, class OutputIterator> OutputIterator reverse_copy ( BidirectionalIterator first, BidirectionalIterator last, OutputIterator result ) { while (first!=last) *result++ = *--last; return result; } *************************************************************************************/ int main() { vector<int> myvector; vector<int>::iterator it; // set some values: for (int i=1; i<10; ++i) myvector.push_back(i); // 1 2 3 4 5 6 7 8 9 reverse(myvector.begin(),myvector.end()); // 9 8 7 6 5 4 3 2 1 // print out content: cout << "myvector contains:"; for (it=myvector.begin(); it!=myvector.end(); ++it) cout << " " << *it; cout << endl; int myints[] = {1,2,3}; cout << "The 3! possible permutations with 3 elements:\n"; sort (myints,myints+3); reverse (myints,myints+3); do { cout << myints[0] << " " << myints[1] << " " << myints[2] << endl; } while ( prev_permutation (myints,myints+3) ); /**-------------------------------------------------------------------------------------**/ // int myints[] = {1,2,3,4,5,6,7,8,9}; deque<int> mydeque; deque<int>::iterator iq; mydeque.resize(9); reverse_copy (myvector.begin(), myvector.end(), mydeque.begin()); // print out content: cout << "mydeque contains:"; for (iq=mydeque.begin(); iq!=mydeque.end(); ++iq) cout << " " << *iq; cout << endl; return 0; }
时间: 2024-11-09 13:43:45