头文件:
如果想要使用reverse的话,必须要使用头文件
#include
![c++ STL容器reverse如何使用[图]](https://exp-picture.cdn.bcebos.com/a007a9b1eef97fbde43c8f06b74133bad241339a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_640%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80)
该容器内部的实现:
调用了iter_swap实现了元素的互换:
template
void reverse (BidirectionalIterator first, BidirectionalIterator last)
{
while((first!=last)&&(first!=--last))
{
std::iter_swap (first,last);
++first;
}
}
![c++ STL容器reverse如何使用[图]](https://exp-picture.cdn.bcebos.com/b6f0f0f97fbd4c7c9df387f4b8bad341027d309a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_640%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80)
该函数的调用语法:
void reverse (BidirectionalIterator first, BidirectionalIterator last);
![c++ STL容器reverse如何使用[图]](https://exp-picture.cdn.bcebos.com/efb861bd4c7c34b39601880f5841037de037319a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_640%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80)
参数:
BidirectionalIterator first与BidirectionalIterator last分别是一个序列的起点和中点。类型是内嵌的Iterator型。
![c++ STL容器reverse如何使用[图]](https://exp-picture.cdn.bcebos.com/7efc527c34b33c4198fa68f4887de137c8762e9a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_640%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80)
举个代码例子演示:
// reverse algorithm example
#include
#include
#include
int main () {
std::vector
// set some values:
for (int i=1; i<10; ++i) myvector.push_back(i); // 1 2 3 4 5 6 7 8 9
std::reverse(myvector.begin(),myvector.end()); // 9 8 7 6 5 4 3 2 1
// print out content:
std::cout << "myvector contains:";
for (std::vector
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
![c++ STL容器reverse如何使用[图]](https://exp-picture.cdn.bcebos.com/4d3d2ab33c4133ba7f01b8c86a37c97623bc2f9a.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_640%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80)