我是靠谱客的博主 聪明诺言,这篇文章主要介绍C++里面的算法reverse转置的使用以及STL中deque容器的转置使用示例,现在分享给大家,希望可以做个参考。

reverse是全局函数模板,不是一个类中的 成员函数。reverse的参数:一个是指向要操作的范围头指针,第二个参数是指向尾的指针。以下的示例程序分别使用reverse函数对数组data和容器vector<string> v1做了转置,其中需要注意的是reverse中的参数的不同。

STL中的deque中自带了转置的迭代器:

复制代码
1
2
3
4
5
deque<int>::iterator it1 = find(deq.begin(), deq.end(), 3);//it1指向元素3 deque<int>::iterator it2 = find(deq.begin(), deq.end(), 8);//it2指向元素8 deque<int>::reverse_iterator rit1(it1);//根据迭代器it1取得反向迭代器rit1 deque<int>::reverse_iterator rit2(it2);

使用泛型函数方法for_each打印出容器中的内容。 

以下是reverse的使用和deque容器使用的一些简单示例: 

复制代码
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
77
#include "stdafx.h" #include <iostream> #include <vector> #include <algorithm> #include <string> #include <deque> using namespace std; void print(int data) { cout << data << " "; } int main(int argc, char *argv[]) { int data[] = {1,2,3,4,5,6,7}; cout << "data reverse before:"; for (int i = 0; i < sizeof(data) / sizeof(int); i++) { cout << data[i] << " "; } cout << endl; reverse<int[]>(data, &data[7]);//对数组data中的元素进行转置 cout << "data reverse after:"; for (int i = 0; i < sizeof(data) / sizeof(int); i++) { cout << data[i] << " "; } cout << endl; vector<string> v1; vector<string>::iterator it; v1.push_back("banana"); v1.push_back("aplle"); v1.push_back("grape"); v1.push_back("mangosteen"); v1.push_back("mango"); v1.push_back("orange"); v1.push_back("pear"); cout << "v1 reverse before:"; for (it = v1.begin(); it != v1.end(); it++) { cout << *it << " "; } cout << endl; reverse<vector<string>::iterator>(v1.begin(), v1.end());//对容器v1中的元素进行转置 cout << "v1 reverse after:"; for (it = v1.begin(); it != v1.end(); it++) { cout << *it << " "; } cout << endl; deque<int> deq; for (int i = 0; i < 10; i++) { deq.push_back(i);//将0-9放到容器deq中 } deque<int>::iterator it1 = find(deq.begin(), deq.end(), 3);//it1指向元素3 deque<int>::iterator it2 = find(deq.begin(), deq.end(), 8);//it2指向元素8 cout << "print [3,8):"; for_each(it1, it2, print);//将[it1,it2)中的元素按照print操作,这里是将每个元素打印出来 cout << endl; deque<int>::reverse_iterator rit1(it1);//根据迭代器it1取得反向迭代器rit1 deque<int>::reverse_iterator rit2(it2); cout << "print reverse [3,8):"; for_each(rit1, rit2, print);//for_each泛型算法 cout << endl; return 0; }

 

最后

以上就是聪明诺言最近收集整理的关于C++里面的算法reverse转置的使用以及STL中deque容器的转置使用示例的全部内容,更多相关C++里面内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部