fun()const->Iterator

先看一個函數定義如下:

template <typename T>
auto Blocker<T>::ObservedEnd() const -> Iterator {return observed_msg_queue_.end();
}

1 迭代器:Iterator

2 C++ auto 返回類型推導:-> Iterator

3 函數體限定不能修改成員:const

常用迭代器:

iterator
const_iterator
reverse_iterator 
const_reverse_iterator

迭代器常用方法:

begin():    返回指向vector第一個元素的迭代器。
end():      返回指向vector最后一個元素的下一個位置的迭代器。
rbegin():   返回指向vector最后一個元素的迭代器,用于逆向遍歷。
rend():     返回指向vector第一個元素前一個位置的逆向迭代器,用于逆向遍歷的結束位置。
cbegin():   與begin()類似,返回指向vector第一個元素的const迭代器,不允許修改元素。
cend():     與end()類似,返回指向vector最后一個元素的下一個位置的const迭代器,不允許修改元素。
crbegin():  與rbegin()類似,返回指向vector最后一個元素的const逆向迭代器,逆向不可修改。
crend():    與rend()類似,返回指向vector第一個元素前一個位置的const逆向迭代器,逆向不可修改。

例子:

#include <iostream>  
#include <unordered_map>  
#include <vector>  
#include <string>  using Iterator = typename std::vector<int>::iterator;
std::vector<int> v = {1, 2, 3, 4, 5};  auto testRet()->Iterator{return v.begin();
}int main() {  for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) {  *it = *it + 1;std::cout << *it << ' ';  }  std::cout << std::endl;  for (std::vector<int>::iterator it = testRet(); it != v.end(); ++it) {  *it = *it + 1;std::cout << *it << ' ';  }  std::cout << std::endl;  for (std::vector<int>::const_iterator it = v.cbegin(); it != v.cend(); ++it) {  std::cout << *it << ' ';  }  std::cout << std::endl;  return 0;  
}

參考文檔:

Iterator library - cppreference.com

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

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

相關文章

【C語言】詳解函數(上)(庖丁解牛版)

文章目錄 1. 前言2. 函數的概念3.庫函數3.1 標準庫和頭文件3.2 庫函數的使用3.2.1 頭文件的包含3.2.2 實踐 4. 自定義函數4.1 自定義函數的語法形式4.2 函數的舉例 5. 形參和實參5.1 實參5.2 形參5.3 實參和形參的關系 6. return 語句6. 總結 1. 前言 一講到函數這塊&#xff…

棧排序00

題目鏈接 棧排序 題目描述 注意點 對棧進行排序使最小元素位于棧頂最多只能使用一個其他的臨時棧存放數據不得將元素復制到別的數據結構&#xff08;如數組&#xff09;中棧中的元素數目在[0, 5000]范圍內 解答思路 本題是要實現一個小頂堆&#xff0c;可以直接使用Priori…

上位機圖像處理和嵌入式模塊部署(f407 mcu中的udp server開發)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】 既然lwip已經port到407上面了&#xff0c;接下來其實就可以做一些測試了。本身lwip支持tcp、udp&#xff0c;也支持client和server&#xff0c;既然…

【數據分享】中國第三產業統計年鑒(1991-2022)

大家好&#xff01;今天我要向大家介紹一份重要的中國第三產業統計數據資源——《中國第三產業統計年鑒》。這份年鑒涵蓋了從1991年到2022年中國第三產業統計全面數據&#xff0c;并提供限時免費下載。&#xff08;無需分享朋友圈即可獲取&#xff09; 數據介紹 每年的《中國…

LeetCode.55 跳躍游戲

LeetCode.55 跳躍游戲 題目描述解題思路錯誤的解題思路解題思路 代碼 題目描述 解題思路 錯誤的解題思路 我一開始的思路是累加可跳范圍內的最大值sum&#xff0c;如果最終sum > nums.size()那么就返回true&#xff0c;這種思路是錯誤的&#xff0c;因為在你選擇最大值的…

2004NOIP普及組真題 3. FBI樹

線上OJ 地址&#xff1a; [04NOIP普及組] FBI樹 本題的意思是&#xff1a;給定一個 01字符串 &#xff08;對應一棵完全二叉樹的最后一層葉子節點&#xff09;&#xff0c;將樹的每一個節點的值用字母“F、B、I”表示。規則&#xff08;如下圖所示&#xff09;為&#xff1a; 1…

Spring AI 第二講 之 Chat Model API 第二節Ollama Chat

通過 Ollama&#xff0c;您可以在本地運行各種大型語言模型 (LLM)&#xff0c;并從中生成文本。Spring AI 通過 OllamaChatModel 支持 Ollama 文本生成。 先決條件 首先需要在本地計算機上運行 Ollama。請參閱官方 Ollama 項目 README&#xff0c;開始在本地計算機上運行模型…

curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL

source ~/.bash_profile flutter clean Command exited with code 128: git fetch --tags Standard error: 錯誤&#xff1a;RPC 失敗。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8) 錯誤&#xff1a;預期仍然需要 2737 個字節的正文 fetch-pack: unexpec…

GPT革命:AI如何重塑我們的未來!

GPT革命&#xff1a;AI如何重塑我們的未來&#xff01; &#x1f604;生命不息&#xff0c;寫作不止 &#x1f525; 繼續踏上學習之路&#xff0c;學之分享筆記 &#x1f44a; 總有一天我也能像各位大佬一樣 &#x1f3c6; 博客首頁 怒放吧德德 To記錄領地 &#x1f31d;分享…

普通人也能弄的 16 個AI搞錢副業,門檻低,易上手!

大家好&#xff0c;我是靈魂畫師向陽 本期給大家分享的是利用AI 做副業的一些方法&#xff0c;大家可以挑選適合自己的賽道去搞錢 現在是人工智能時代&#xff0c;利用好AI 工具&#xff0c;可以降低普通人做副業的門檻&#xff0c;同時也能提高工作效率&#xff0c; 因此AI …

【微機原理與匯編語言】循環程序設計

一、實驗目的 1.熟練掌握8086/8088常用匯編指令的使用方法 2.熟練掌握循環結構程序編程技巧 3.熟練掌握匯編語言程序運行調試方法 二、實驗要求 認真分析實驗題目&#xff0c;設計程序流程圖&#xff0c;獨立完成代碼編寫及運行調試。 三、實驗題目 給出不大于255的十個…

圖片裁剪與上傳處理方案 —— 基于阿里云 OSS 處理用戶資料

目錄 01: 通用組件&#xff1a;input 構建方案分析 02: 通用組件&#xff1a;input 構建方案 03: 構建用戶資料基礎樣式 04: 用戶基本資料修改方案 05: 處理不保存時的同步問題 06: 頭像修改方案流程分析 07: 通用組件&#xff1a;Dialog 構建方案分析 08: 通用組件&…

計算機組成原理·考點知識點整理

根據往年考試題&#xff0c;對考點和知識點的一個整理。 校驗編碼 碼距 一種編碼的最小碼距&#xff0c;其實就是指這種編碼的碼距。碼距有兩種定義&#xff1a; 碼距所描述的對象含義 2 2 2 個特定的碼其二進制表示中不同位的個數一種編碼這種編碼中任意 2 2 2 個合法編碼的…

【linux進程控制(三)】進程程序替換--如何自己實現一個bash解釋器?

&#x1f493;博主CSDN主頁:杭電碼農-NEO&#x1f493; ? ?專欄分類:Linux從入門到精通? ? &#x1f69a;代碼倉庫:NEO的學習日記&#x1f69a; ? &#x1f339;關注我&#x1faf5;帶你學更多操作系統知識 ? &#x1f51d;&#x1f51d; 進程程序替換 1. 前言2. exec…

【JMeter接口自動化】第8講 Fiddler抓包Jmeter

1&#xff09;配置好Fiddler 設置Fiddler-Tools-Options-HTTPS 設置Fiddler-Tools-Options-Connections&#xff0c;設置端口為8888 2&#xff09;查看IP 在CMD中輸入ipconfig 查看IP地址 3&#xff09;配置Jmeter Http請求——基本&#xff0c;設置Http請求&#xff0c;使用…

輕量管理內核復雜級別的項目

在嵌入式開發中&#xff0c;管理大型項目&#xff08;例如Linux內核&#xff09;往往是一個復雜的過程。常規的版本控制系統如Git在處理小型項目時非常高效&#xff0c;但面對龐大的代碼庫時可能會顯得笨重且占用大量存儲空間。本文將介紹幾種輕量級的方法來管理內核級別的項目…

Python 快速入門

1. 語言基礎 1.1 數據類型與變量 Python 是一門動態類型語言&#xff0c;這意味著你不需要顯式聲明變量的類型。Python 解釋器會根據你賦予變量的值自動推斷其類型。這使得 Python 代碼簡潔易懂&#xff0c;但同時也需要注意一些潛在的問題。 1.1.1 Python 數據類型概述 Py…

408鏈表的創建和初始化

首先第一個頭文件&#xff0c;定義結構體類型 typedef struct LNode {int data;struct LNode* next; }LNode,*LinkList; //可能作為第一次寫c語言的小伙伴看不懂這一段typedef是如何定義的 //基本的解釋如下所示 //typedef struct LNode LNode; //typedef struct LNode* LinkL…

apex代碼發送郵件時進行抄送

在 Salesforce 中使用 Apex 代碼發送電子郵件時&#xff0c;可以通過 ccAddresses 屬性來添加抄送&#xff08;CC&#xff09;收件人。以下是一個示例代碼&#xff0c;展示了如何使用 Messaging.SingleEmailMessage 類來發送帶有抄送的電子郵件。 示例代碼 public class Emai…

北航數據結構與程序設計第四次作業選填題復習

首先都是線性的&#xff0c;線性包括順序和鏈式&#xff0c;棧和隊都可以用兩種方式實現。棧只能存于棧頂取于棧頂&#xff0c;隊列先進先出&#xff0c;因此存取點是固定的。 函數棧幀創建原理 畫圖即可。 A.顯然不行&#xff0c;5如果第一個出來說明5是最后一個進的&#xf…