reverse是全局函数模板,不是一个类中的 成员函数。reverse的参数:一个是指向要操作的范围头指针,第二个参数是指向尾的指针。以下的示例程序分别使用reverse函数对数组data和容器vector<string> v1做了转置,其中需要注意的是reverse中的参数的不同。
STL中的deque中自带了转置的迭代器:
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容器使用的一些简单示例:
#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++里面内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复