交换算法

来源:互联网 发布:苹果电脑下不了软件 编辑:程序博客网 时间:2024/04/30 12:52
#include <iostream>#include <vector>#include <deque>#include <algorithm>using namespace std;int main(){vector<int> ivec1;vector<int> ivec2;ivec1.push_back(1);ivec1.push_back(2);ivec1.push_back(3);ivec2.push_back(10);ivec2.push_back(20);ivec2.push_back(30);ivec1.swap(ivec2); // swap交换比swap_ranges速度要快,cout << ivec1.at(0) << ' ' << ivec1.at(1) << ' ' << ivec1.at(2) << endl;cout << endl << endl;vector<int> ivec;deque<int> ideq;for (int i = 1; i <= 9; ++i)ivec.push_back(i);for (int i = 11; i <= 23; ++i)ideq.push_back(i);for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)cout << *iter << ' ';cout << endl;for (deque<int>::iterator iter = ideq.begin(); iter != ideq.end(); ++iter)cout << *iter << ' ';cout << endl;deque<int>::iterator pos;pos = swap_ranges(ivec.begin(), ivec.end(), ideq.begin());  //  swap_ranges是交换,for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)cout << *iter << ' ';cout << endl;for (deque<int>::iterator iter = ideq.begin(); iter != ideq.end(); ++iter)cout << *iter << ' ';cout << endl;if (pos != ideq.end())cout << "第一个没有交换的数:" << *pos << endl;swap_ranges(ideq.begin(), ideq.begin() + 3, ideq.rbegin());for (deque<int>::iterator iter = ideq.begin(); iter != ideq.end(); ++iter)cout << *iter << ' ';cout << endl;return 0;}

0 0