MFC容器類CArray,CList

來源:互聯網
上載者:User

我們知道有各種各樣的資料結構,啥棧,隊列,樹之類的.不過其實這些用的都非常少,用的最多的是線性表.平常我們用的數組最是典型的線性表.我們可以像int [] arrp這樣簡單的定義一個數組.不過這是固定大小的.不夠靈活.所以出現了所謂的動態數組.

STL中的動態數組叫vector,MFC中類似的動態數組是CArray.它跟vector一樣也是一個模板類.由於數組嘛插入資料時效率較低,所以又有鏈表.

STL中的鏈表是list,MFC中類似的鏈表是CList(是一個雙鏈表)

CArray 簡單用法

CArray<int> ca;

ca.Add(11);  //添加元素

ca.Add(33);

ca.InsertAt(1, 22); //在索引為1的地方插入元素22

ca.RemoveAt(1); //刪除索引為1的元素

ca.GetSize(); //得到數組長度

POSITION pos = ca.GetStartPosition(); //POSTION有點類似STL中的迭代器iterator.MFC裡沒迭代器

int val = ca[0];

ca.RemoveAll();  //刪除所有元素

 

CList簡單用法

CList<int> list;

list.AddHead(11); //頭部插入元素

list.AddHead(22);

list.AddTail(99); //頭部移除元素

list.AddTail(88);

list.RemoveHead();//刪除頭部元素

list.RemovTail();

int count = list.GetCount();

bool empty = list.IsEmpty();

int hVal = list.GetHead();

int tVal  = list.GetTail();

 

POSITION pos = list.GetHeadPosition();

pos = list.GetTailPosition();

int val = list.GetAt(pos);

list.GetNext(pos); //pos移到下一位

pos = list.Find(88);  //找到88所在位置

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.