ITPub博客

首页 > 应用开发 > > C++ 编程规则 使用范例

C++ 编程规则 使用范例

作者:zhjjj 时间:2019-08-15 17:14:35 0 删除 编辑

头文件的顺序. 

  1. 系统/基本头文件

  2. 其他工程头文件

  3. 本工程头文件

  4. 本类头文件.

类定义中的成员变脸和成员函数排列顺序

1. 枚举/结构体, 固定使用public类型, 排在最前

2. private 成员变量

3. protected 成员变量

4. public 成员变量

5. private 成员函数

6. protected 成员函数

7. public 成员函数

8. 静态成员函数

细分顺序

    本类const成员函数

    本类非const成员函数    

    本类const虚函数

    本类非const虚函数  

    基类const成员函数

    基类非const成员函数   

点击(此处)折叠或打开  迭代器的使用范例.

#include <iostream>

#include <map>

using namespace std;

class CMapExa

{

public:

void OnInit();

void DelFunConfuse();

void DelFunCorrect();

void Show();

private:

typedef map<int, int> MAP_DATA;

MAP_DATA m_map;

};

void CMapExa::OnInit()

{

m_map.insert(MAP_DATA::value_type(1,1));

m_map.insert(MAP_DATA::value_type(2,2));

m_map.insert(MAP_DATA::value_type(3,3));

}

void CMapExa::DelFunConfuse() //不好的方式

{

for (MAP_DATA::iterator it = m_map.begin(); it != m_map.end();)

{

m_map.erase(it++); //容易错误使用为 m_map.erase(it);

}

}

void CMapExa::DelFunCorrect() //建议的方式

{

MAP_DATA delMap;

for (MAP_DATA::iterator it = m_map.begin(); it != m_map.end(); ++it) {

delMap[it->first] = it->second;

}

for (MAP_DATA::iterator it = delMap.begin(); it != delMap.end(); ++it) {

MAP_DATA::iterator itDel = m_map.find(it->first);

if (itDel != m_map.end())

m_map.erase(itDel);

}

delMap.clear();

}

void CMapExa::Show()

{

for (MAP_DATA::iterator it = m_map.begin(); it != m_map.end(); it++)

{

cout << it->first << endl;

cout << it->second << endl;

}

}

int main()

{

CMapExa objMapExa;

objMapExa.OnInit();

objMapExa.DelFunCorrect();

//objMapExa.DelFunConfuse();

objMapExa.Show();

}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/717/viewspace-3118521/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-12

  • 博文量
    231
  • 访问量
    1888