MFC CList<CRect, CRect> m_listRect;的用法

CList<CRect, CRect&> 是 MFC(Microsoft Foundation Classes)中定義的一個雙向鏈表模板類,用于存儲 CRect 對象。在使用 CList 時,你可以執行多種操作,比如添加、移除、查找和遍歷元素。以下是一些常見的用法示例。

聲明和初始化

首先,我們需要包含必要的頭文件并聲明一個 CList 對象:

#include <afxtempl.h>  // 包含 CList 定義的頭文件CList<CRect, CRect&> m_listRect;  // 聲明一個存儲 CRect 對象的 CList

添加元素

可以使用 AddTailAddHead 方法將元素添加到鏈表的尾部或頭部。

CRect rect1(0, 0, 100, 100);
CRect rect2(10, 10, 200, 200);m_listRect.AddTail(rect1);  // 將 rect1 添加到鏈表尾部
m_listRect.AddHead(rect2);  // 將 rect2 添加到鏈表頭部

遍歷元素

使用 GetHeadPositionGetNext 方法遍歷鏈表中的所有元素。

POSITION pos = m_listRect.GetHeadPosition();
while (pos != NULL)
{CRect& rect = m_listRect.GetNext(pos);// 處理 rect 對象
}

獲取元素

可以使用 GetHeadGetTail 獲取鏈表的第一個和最后一個元素。

CRect& headRect = m_listRect.GetHead();  // 獲取第一個元素
CRect& tailRect = m_listRect.GetTail();  // 獲取最后一個元素

查找元素

使用 Find 方法查找特定元素,返回值是一個 POSITION 對象。

POSITION pos = m_listRect.Find(rect1);
if (pos != NULL)
{// 找到了 rect1CRect& foundRect = m_listRect.GetAt(pos);
}

刪除元素

可以使用 RemoveAtRemoveHeadRemoveTail 方法刪除元素。

m_listRect.RemoveHead();  // 刪除第一個元素
m_listRect.RemoveTail();  // 刪除最后一個元素// 使用 Find 方法找到元素并刪除
POSITION pos = m_listRect.Find(rect1);
if (pos != NULL)
{m_listRect.RemoveAt(pos);  // 刪除找到的元素
}

獲取元素數量

使用 GetCount 方法獲取鏈表中元素的數量。

int count = m_listRect.GetCount();  // 獲取元素數量

示例代碼

下面是一個完整的示例代碼,展示了 CList<CRect, CRect&> 的基本用法:

#include <afxwin.h>      // MFC 核心和標準組件
#include <afxtempl.h>    // MFC 模板類void ExampleCListUsage()
{// 聲明 CList 對象CList<CRect, CRect&> m_listRect;// 添加元素CRect rect1(0, 0, 100, 100);CRect rect2(10, 10, 200, 200);m_listRect.AddTail(rect1);m_listRect.AddHead(rect2);// 遍歷元素POSITION pos = m_listRect.GetHeadPosition();while (pos != NULL){CRect& rect = m_listRect.GetNext(pos);// 處理 rect 對象}// 獲取元素CRect& headRect = m_listRect.GetHead();CRect& tailRect = m_listRect.GetTail();// 查找并刪除元素pos = m_listRect.Find(rect1);if (pos != NULL){m_listRect.RemoveAt(pos);}// 獲取元素數量int count = m_listRect.GetCount();
}

這段代碼展示了如何聲明、初始化、添加、遍歷、獲取、查找和刪除 CList 中的元素。希望這些示例對你有幫助。如果你有任何其他問題,請告訴我!

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

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

相關文章

SAP 生產訂單報工函數BAPI_PRODORDCONF_CREATE_TT不返回報錯信息

最近財務一直反饋MES報工的數據都沒有成本,然后去查看原因發現是財務當月的KP26的價格沒有進行維護,導致沒有收集到工單的報工成本。 但是在前臺操作CO11 報工的時候,系統會給出報錯的信息 但是我們在調用函數BAPI_PRODORDCONF_CREATE_TT的時候,系統并沒有返回報錯的信息…

普通測徑儀和智能測徑儀的五大區別

在工業自動化和精密測量的領域中&#xff0c;測徑儀是不可或缺的重要工具。隨著科技的進步&#xff0c;測徑儀也在不斷地進行技術革新和升級&#xff0c;從傳統的普通測徑儀發展到如今的智能測徑儀。本文將詳細探討普通測徑儀與智能測徑儀之間的五大區別。 一、測量精度與穩定…

【Tlias智能學習輔助系統】01 準備工作

Tlias智能學習輔助系統 01 創建員工、部門表創建springboot工程&#xff0c;引入對應的起步依賴(web、mybatis、mysql驅動、lombok)準備 Mapper、Service、Controller 等基礎結構MapperServiceControllerpojo封裝類application.properties 接口開發規范 創建員工、部門表 -- 創…

oracle sql--計算某一日期到當前日期的間隔天數

oracle sql–計算某一日期到當前日期的間隔天數 如題&#xff0c;是在工作中遇到的一個報表需求問題。用戶需要查詢“創建時間到當下的天數”&#xff0c;于是我這個可憐的打工仔就開始干活了。。。&#xff08;苦澀ing&#xff09;我發現oracle sql的自帶函數和普通的sql貌似…

FPGA基礎:觸發器和鎖存器

目錄 鎖存器&#xff08;Latch&#xff09;D觸發器&#xff08;Flip-Flop&#xff09;最基本時序電路時序塊&#xff08;Sequential blocks&#xff09;:同步與異步觸發器概念觸發器分類觸發器的Verilog實現1. 上升沿觸發的觸發器2. 帶異步復位、上升沿觸發的觸發器3. 帶異步復…

raid配置與實戰10

一、raid理論 1、raid概述 raid&#xff08;磁盤陣列&#xff09;&#xff1a;是用不同的硬盤分區&#xff0c;組成一個邏輯上的硬盤&#xff0c;高可用&#xff08;冗余&#xff09;。 2、raid級別 2.1、raid0條帶化存儲 數據分散在多個物理磁盤上的存儲方式&#xff0c;…

新媒體時代,LCD電子價簽賦予零售場景新活力

近年來&#xff0c;全球企業迅速掀起了數字化轉型的浪潮&#xff0c;加速了新零售科技的發展與應用。在實體零售門店中&#xff0c;商品貨架顯示逐漸趨向智能化和多樣化。然而&#xff0c;在信息傳播日益碎片化和視頻化的時代&#xff0c;零售門店如何更有效地吸引消費者的注意…

英飛凌 AURIX TriCore 單片機開發入門

文章目錄 目的硬件準備AURIX? Development StudioInfineon MemtoolAURIX? iLLD Drivers總結 目的 英飛凌的32位 AURIX? TriCore? 系列單片機 經常用于汽車和工業領域。開發該系列單片機比較常用的開發環境有 HighTec 和 AURIX? Development Studio 。本文將基于后者&…

TalkingData數據統計的力量

在數字化時代&#xff0c;數據已成為企業競爭的關鍵資源。而TalkingData作為一家領先的第三方數據平臺&#xff0c;其數據統計能力無疑是推動企業智能化轉型的重要力量。 首先&#xff0c;TalkingData的數據統計能力體現在其龐大的用戶基礎和豐富的數據來源上。通過與數千家應…

Java-常用模塊

文章目錄 日期時間stream流 日期時間 jdk8新的日期時間類 解析和格式化DateTimeFormatter類&#xff08;線程安全&#xff09; LocalDateTime類 Instant類 Duration類String time "2013-02-11 11:00:00";DateTimeFormatter dateTimeFormatter DateTimeFormatter.o…

linux鏡像虛擬機創建共享文件夾詳細步驟 -- 和本地電腦傳輸文件

主機與虛擬機之間傳遞文件&#xff0c;最快捷的方法莫過于共享文件夾。此方法不需要復制文件&#xff0c;而且可以節省硬盤空間。 具體設置步驟如下&#xff1a; 打開自己的電腦&#xff0c;創建共享的文件夾&#xff0c;完成后鼠標右擊剛剛創建的共享文件夾&#xff0c;選擇…

設計模式 18 迭代器模式 Iterator Pattern

設計模式 18 迭代器模式 Iterator Pattern 1.定義 迭代器模式 (Iterator Pattern) 是一種行為型設計模式&#xff0c;它提供了一種訪問集合元素的標準方法&#xff0c;而無需暴露集合的內部表示。 提供一種方法順序訪問一個聚合對象中的各個元素&#xff0c;而又不需要暴露該…

python猜數游戲限制次數

1、游戲規則 在這個游戲中&#xff0c;計算機會隨機生成一個1到100之間的整數&#xff0c;玩家需要在限定的次數內猜測這個數字是多少。如果玩家猜對了數字&#xff0c;游戲結束&#xff0c;玩家獲勝;如果玩家用完了所有的猜測次數仍然沒有猜對&#xff0c;游戲結束&#xff0…

Redis之內存管理過期、淘汰機制

1.Redis內存管理 我們的redis是一個內存型數據庫&#xff0c;我們的數據也都是放在內存中的&#xff0c;內存是有限的空間&#xff0c;當數據滿了之后&#xff0c;我們要怎么樣繼續保證redis的可用性呢?我們就需要采取點管理措施和機制來保證我們redis的可用性。 在redis.co…

一套saas模式云MES系統源碼,基于springboot+vue.js+uniapp開發

一套saas模式云MES系統源碼&#xff0c;基于springbootvue.jsuniapp開發 MES系統簡介 MES系統&#xff0c;即制造執行系統&#xff08;Manufacturing Execution System&#xff09;&#xff0c;是一種面向制造企業車間執行層的生產信息化管理系統。它位于上層的企業資源規劃&a…

Day01_CET4-Read synonymous substitutions

文章目錄 1.減少2.增加3.原因4.贊揚 1.減少 diminish v.減少 dwindle v.逐漸減少 lessen v.減少 slash v.削減 &#xff08;cut down&#xff09; slump v.暴跌&#xff1b;n.衰退 recession n.衰退 &#xff08;economic disruption&#xff09; lower v.降低 depress…

應用案例|精密制造中使用復合機器人得到顯著提升

精密制造行業對設備的精度、穩定性和效率要求極高&#xff0c;而復合機器人憑借其多功能性、高度靈活性和精準控制能力&#xff0c;正逐漸成為該領域的新寵。以下是一個富唯智能復合機器人在精密制造中的應用案例。 案例背景 某知名汽車零部件制造企業&#xff0c;專注于生產…

【JS】并發控制

需求 控制網絡請求并發數控制并發按順序返回結果 碼 /** * 控制并發 * param {Function} fn 邏輯處理函數 * param {Array} arr 發送的數據 * param {Number} [max3] 并發數 默認3 * param {Number} [orderfalse] 按順序返回執行結果 默認false * param {Number} [retry1] 重試…

vue項目集成螢石云在Web系統中實現實時攝像頭監控及控制功能

需求 需求&#xff1a; 開發人員在產線上放置一個螢石攝像頭&#xff0c;前端在可視化大屏上實時監控&#xff0c;且控制左右上下功能。 效果 螢石云接入web前期準備工作 閱讀螢石云API文檔&#xff1a;螢石云開放平臺開發者文檔 閱讀螢石云控制API文檔&#xff1a;螢石云攝…

【錯題集-編程題】dd 愛旋轉(模擬)

牛客對應題目鏈接&#xff1a;dd愛旋轉 (nowcoder.com) 一、分析題目 模擬題&#xff0c;但是需要不能直接無腦模擬&#xff0c;要思考?下規律。 順時針旋轉 180&#xff1a;行變換 列變換行變換、列變換的順序顛倒不會有影響行變換的次數是個數相當于不變 二、代碼 #includ…