最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中CSimpleList的實現(xiàn)與測試實例

 更新時間:2014年10月11日 08:58:10   投稿:shichen2014  
這篇文章主要介紹了C++中CSimpleList的實現(xiàn)與測試實例,較為詳細(xì)的講述了C++列表類的實現(xiàn)方法,需要的朋友可以參考下

本文實例講述了C++簡單列表類的實現(xiàn)方法。分享給大家供大家參考。具體方法如下:

_AFXTLS.CPP文件如下:

//#include "StdAfx.h 
#include <stddef.h> 
#include <stdio.h> 
#include "_AFXTLS_.H" 
 
struct MyThreadData{ 
  MyThreadData* pNext; 
  int nShortData; 
}; 
 
void CSimpleList::AddHead(void *p) 
{ 
  *GetNextPtr(p)=m_pHead; 
  m_pHead = p; 
} 
 
BOOL CSimpleList::Remove(void* p) 
{ 
  BOOL bRet = FALSE; 
  if (p == NULL) 
  { 
    bRet = FALSE; 
  } 
 
  if (p == m_pHead) 
  { 
    m_pHead = GetNext(m_pHead); 
    bRet = TRUE; 
  } 
  else 
  { 
    void*  pTest; 
    pTest = m_pHead; 
    while (pTest && (GetNext(pTest) != p)) 
    { 
      pTest = GetNext(pTest); 
    } 
    if (pTest != NULL) 
    { 
      *GetNextPtr(pTest) = GetNext(p); 
      bRet = TRUE; 
    } 
  } 
  return bRet; 
 
} 
 
void main() 
{ 
  MyThreadData* pData; 
  CSimpleList list; 
  list.Construct(offsetof(MyThreadData, pNext)); 
  for (int i=0;i<10;i++) 
  { 
    pData = new MyThreadData; 
    pData->nShortData = i; 
    list.AddHead(pData); 
  } 
 
  //遍歷鏈表,釋放MyThreadData對象占用的空間 
  pData = (MyThreadData*)list.GetHead(); 
  while(pData != NULL) 
  { 
    MyThreadData* pNextData = pData->pNext; 
    printf("The value is %d\n",pData->nShortData); 
    delete pData; 
    pData = pNextData; 
  } 
} 

_AFXTLS_.H文件如下:

//#include "StdAfx.h 
#ifndef __AFXTLS_H__ 
#define __AFXTLS_H__ 
#include <Windows.h> 
class CSimpleList 
{ 
public: 
  CSimpleList(int nNextOffset=0); 
  void Construct(int nNextOffset); 
  //接口 
  BOOL IsEmpty() const; 
  void AddHead(void *p); 
  void RemoveAll(); 
  void* GetHead() const; 
  void* GetNext(void* preElement) const; 
  BOOL Remove(void* p); 
 
  //為實現(xiàn)接口所需的成員 
  void  *m_pHead; 
  size_t m_nextOffset; 
  void** GetNextPtr(void* preElement) const; 
}; 
 
//類的內(nèi)聯(lián)函數(shù) 
inline CSimpleList::CSimpleList(int nNextOffset) 
  {m_pHead = NULL; m_nextOffset = nNextOffset;  } 
 
inline void CSimpleList::Construct(int nNextOffset) 
  {m_nextOffset = nNextOffset;  } 
 
inline BOOL CSimpleList::IsEmpty() const 
{ 
  return m_pHead==NULL; 
} 
//inline void AddHead(void *p) 
//{ 
// 
//} 
inline void CSimpleList::RemoveAll() 
{ 
  m_pHead = NULL; 
} 
inline void* CSimpleList::GetHead() const 
{ 
  return m_pHead; 
} 
inline void* CSimpleList::GetNext(void* preElement) const 
{ 
  return *GetNextPtr(preElement); 
} 
//inline BOOL CSimpleList::Remove(void* p) 
//{ 
// 
//} 
inline void**  CSimpleList::GetNextPtr(void* preElement) const 
{ 
  return (void**)((BYTE*)preElement+m_nextOffset); 
} 
 
 
#endif

希望本文所述對大家的C++程序設(shè)計有所幫助。

相關(guān)文章

  • C語言實現(xiàn)用?*?打印X形圖案

    C語言實現(xiàn)用?*?打印X形圖案

    這篇文章主要介紹了C語言實現(xiàn)用?*?打印X形圖案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++實現(xiàn)高校教室管理系統(tǒng)

    C++實現(xiàn)高校教室管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)高校教室管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言實現(xiàn)進程5狀態(tài)模型的狀態(tài)機

    C語言實現(xiàn)進程5狀態(tài)模型的狀態(tài)機

    狀態(tài)機在實際工作開發(fā)中應(yīng)用非常廣泛,用這幅圖就可以很清晰的表達整個狀態(tài)的流轉(zhuǎn)。本篇通過C語言實現(xiàn)一個簡單的進程5狀態(tài)模型的狀態(tài)機,讓大家熟悉一下狀態(tài)機的魅力,需要的可以參考一下
    2022-10-10
  • C語言實現(xiàn)整數(shù)逆序的情況解析

    C語言實現(xiàn)整數(shù)逆序的情況解析

    今天通過本文給大家介紹C語言實現(xiàn)整數(shù)逆序的情況,本文通過實例代碼多種舉例給大家介紹的非常詳細(xì),對C語言整數(shù)逆序相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • c語言中十進制轉(zhuǎn)二進制顯示小工具的實現(xiàn)代碼

    c語言中十進制轉(zhuǎn)二進制顯示小工具的實現(xiàn)代碼

    本篇文章是對c語言中十進制轉(zhuǎn)二進制顯示小工具的實現(xiàn)代碼進行了詳細(xì)的分析的介紹,需要的朋友參考下
    2013-05-05
  • Clion配置opencv開發(fā)環(huán)境的詳細(xì)過程

    Clion配置opencv開發(fā)環(huán)境的詳細(xì)過程

    這篇文章主要介紹了Clion配置opencv開發(fā)環(huán)境的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考的下
    2022-04-04
  • C語言實例真題講解數(shù)據(jù)結(jié)構(gòu)中單向環(huán)形鏈表

    C語言實例真題講解數(shù)據(jù)結(jié)構(gòu)中單向環(huán)形鏈表

    鏈表可以說是一種最為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)了,而單向鏈表更是基礎(chǔ)中的基礎(chǔ)。鏈表是由一組元素以特定的順序組合或鏈接在一起的,不同元素之間在邏輯上相鄰,但是在物理上并不一定相鄰。在維護一組數(shù)據(jù)集合時,就可以使用鏈表,這一點和數(shù)組很相似
    2022-04-04
  • C語言通訊錄管理系統(tǒng)完整版

    C語言通訊錄管理系統(tǒng)完整版

    這篇文章主要為大家詳細(xì)介紹了C語言通訊錄管理系統(tǒng)的完整版本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C++結(jié)構(gòu)體數(shù)組詳細(xì)解析

    C++結(jié)構(gòu)體數(shù)組詳細(xì)解析

    定義結(jié)構(gòu)體數(shù)組和定義結(jié)構(gòu)體變量類似,定義結(jié)構(gòu)體數(shù)組時只需聲明其為數(shù)組即可
    2013-10-10
  • 詳解C++ 多態(tài)的實現(xiàn)及原理

    詳解C++ 多態(tài)的實現(xiàn)及原理

    這篇文章主要介紹了C++ 多態(tài)的實現(xiàn)及原理,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05

最新評論

大石桥市| 沂水县| 敦化市| 九寨沟县| 新邵县| 黄冈市| 嵊泗县| 乌拉特前旗| 淮北市| 桦川县| 波密县| 郓城县| 彭山县| 唐海县| 桂林市| 酒泉市| 无锡市| 衡南县| 宁强县| 嘉荫县| 磐安县| 嵊泗县| 永和县| 淮阳县| 梅州市| 浏阳市| 虞城县| 衢州市| 连山| 个旧市| 色达县| 长宁县| 河南省| 阿拉善左旗| 漯河市| 建昌县| 南宁市| 千阳县| 永州市| 兰坪| 浮梁县|