reverse函數:反轉容器內容

reverse函數可以反轉一個容器中的內容,包含在<algorithm>庫中。

1、函數原型

reverse函數等同于下面的代碼:

template <class BidirectionalIterator> void reverse (BidirectionalIterator first, BidirectionalIterator last)
{while ((first!=last)&&(first!=--last)){std::iter_swap (first,last);++first;}
}
reverse函數使用iter_swap來交換兩個元素。

2、參數:first、last

first和last是雙向迭代器類型,reverse函數反轉的范圍是[first,last),所以包括first指向的元素,不包括last指向的元素。

3、返回值

reverse函數沒有返回值。

4、例子

// reverse algorithm example
#include <iostream>    
// std::cout
#include <algorithm>   
// std::reverse
#include <vector>      
// std::vectorint main () {std::vector<int> myvector;// set some values:for (int i=1; i<10; ++i) myvector.push_back(i);   // 1 2 3 4 5 6 7 8 9std::reverse(myvector.begin(),myvector.end());    // 9 8 7 6 5 4 3 2 1// print out content:std::cout << "myvector contains:";for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)std::cout << ' ' << *it;std::cout << '\n';return 0;
}

輸出:
myvector contains: 9 8 7 6 5 4 3 2 1
5、復雜度
循環交換首尾元素。因此復雜度是線性的,并且循環半個數組長度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385496.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385496.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385496.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

服務器框架

一、Reactor模式 Reactor模式&#xff0c;它要求主線程&#xff08;I/O處理單元&#xff09;只負責監聽文件描述符上是否有事件發生&#xff0c;有的話就立即將該事件通知工作線程&#xff08;邏輯單元&#xff09;。除此之外&#xff0c;主線程&#xff08;I/O處理單元&#…

使用CreateFile讀寫文件

微軟提供了強大的文件讀寫操作的編程接口&#xff0c;所以可以通過調用API函數實現文件的讀寫操作。這里通過CreateFile函數來實現。 要對文件進行讀寫操作&#xff0c;首先要調用CreateFile函數打開或者創建文件&#xff0c;函數具體格式如下&#xff1a; HANDLE CreateFile(…

Leetcode 9. 回文數(Palindrome Number)

判斷一個整數是否是回文數。回文數是指正序&#xff08;從左向右&#xff09;和倒序&#xff08;從右向左&#xff09;讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個…

使用CreateThread函數創建線程

線程是進程中的一個實體&#xff0c;是被系統獨立調度和分派的基本單位。一個進程可以擁有多個線程&#xff0c;但是一個線程必須有一個進程。線程自己不擁有系統資源&#xff0c;只有運行所必須的一些數據結構&#xff0c;但它可以與同屬于一個進程的其它線程共享進程所擁有的…

Leetcode 16. 最接近的三數之和(3Sum Closest)

解法一&#xff1a; class Solution { public:int threeSumClosest(vector<int>& nums, int target) {int closest nums[0] nums[1] nums[2];int diff abs(closest - target);sort(nums.begin(), nums.end());for (int i 0; i < nums.size() - 2; i) {int…

BMP格式詳解

BMP&#xff08;全稱Bitmap&#xff09;是Windows操作系統中的標準圖像文件格式&#xff0c;可以分成兩類&#xff1a;設備相關位圖&#xff08;DDB&#xff09;和設備無關位圖&#xff08;DIB&#xff09;&#xff0c;使用非常廣。它采用位映射存儲格式&#xff0c;除了圖像深…

Leetcode 5. 最長回文子串(Longest Palindromic Substring)

推薦理由&#xff1a;暴力解法太 naive&#xff0c;中心擴散不普適&#xff0c;Manacher 就更不普適了&#xff0c;是專門解這個問題的方法。而用動態規劃我認為是最有用的&#xff0c;可以幫助你舉一反三的方法。 補充說明&#xff1a;Manacher 算法有興趣的朋友們可以了解一…

請求轉發與請求重定向的區別

請求轉發&#xff1a; 請求轉發&#xff0c;即request.getRequestDispatcher().forward()&#xff0c;是一種服務器的行為&#xff0c;客戶端只有一次請求&#xff0c;服務器端轉發后會將請求對象保存&#xff0c;地址欄中的URL地址不會改變&#xff0c;得到響應后服務器端再將…

StringBuilder詳解

1、簡介 StringBuilder和StringBuffer一樣&#xff0c;都是繼承自抽象類AbstractStringBuilder類&#xff0c;也是一個可變的字符序列。StringBuilder和StringBuffer非常相似&#xff0c;甚至有互相兼容的API&#xff0c;不過&#xff0c;StringBuilder不是線程安全的&#xf…

【線程】互斥鎖

一、互斥鎖 1. 函數原型 pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); pthread_mutex_destroy(pthread_mutex_t *mutex); 分析&#xff1a; pthread_mutex_t 類型&#xff0c;其本質是一個結構體&#xff0c;為簡化…

ArrayList詳解

1、簡介 ArrayList是Java集合框架中的一個重要的類&#xff0c;它繼承于AbstractList&#xff0c;實現了List接口&#xff0c;是一個長度可變的集合&#xff0c;提供了增刪改查的功能。集合中允許null的存在。ArrayList類還是實現了RandomAccess接口&#xff0c;可以對元素進行…

【進程】進程組

一、進程組 1. 進程組 &#xff08;1&#xff09;進程組&#xff0c;也稱之為作業&#xff0c;BSD與1980年前后向UNIX中增加的一個新特性&#xff0c;代表一個或多個進程的集合。每個進程都屬于一個進程組&#xff0c;在waitpid函數和kill函數的參數中都曾經使用到&#xff0c…

函數wait、waitpid、孤兒進程、僵尸進程

一、函數wait、waitpid 一個進程在終止時會關閉所有文件描述符&#xff0c;釋放在用戶空間釋放的內存&#xff0c;但它的PCB還保留著&#xff0c;內核在其中保存一些信息&#xff1a;如果是正常終止時則保存著退出狀態&#xff0c;如果是異常終止則保存著導致該進程終止的信號是…

MySQL中的字符集與字符序

這篇文章詳細介紹一下MySQL中的字符集和字符序相關的問題&#xff0c;里里外外地了解一下字符集和字符序的方方面面&#xff0c;同時重點說明一下開發中需要注意的問題。 文章基于MySQL 8.0&#xff0c;也會涉及到5.7版本。主要參考MySQL手冊&#xff1a;https://dev.mysql.com…

MySQL中的JSON

從5.7.8開始&#xff0c;MySQL開始支持JSON類型&#xff0c;用于存儲JSON數據。 JSON類型的加入模糊了關系型數據庫與NoSQL之間的界限&#xff0c;給日常開發也帶來了很大的便利。 這篇文章主要介紹一下MySQL中JSON類型的使用&#xff0c;主要參考MySQL手冊&#xff1a;https…

【C++ Primer | 15】虛函數表剖析(一)

一、虛函數 1. 概念 多態指當不同的對象收到相同的消息時&#xff0c;產生不同的動作 編譯時多態&#xff08;靜態綁定&#xff09;&#xff0c;函數重載&#xff0c;運算符重載&#xff0c;模板。運行時多態&#xff08;動態綁定&#xff09;&#xff0c;虛函數機制。為了實現…

【Leetcode | 02】二叉樹、線性表目錄

二叉樹序號題號1 94. 二叉樹的中序遍歷 295. 不同的二叉搜索樹 II396. 不同的二叉搜索樹4 98. 驗證二叉搜索樹 5100. 相同的樹6101. 對稱二叉樹7102. 二叉樹的層次遍歷8103. 二叉樹的鋸齒形層次遍歷9104. 二叉樹的最大深度10105. 從前序與中序遍歷序列構造二叉樹11106. 從中序與…