C++代码编写实例.docVIP

  • 26
  • 0
  • 约6.31千字
  • 约 16页
  • 2017-05-12 发布于河南
  • 举报
C代码编写实例

风云三号卫星地面应用系统产品质量检验系统(QCS)业务软件开发项目 代码编写实例 QCS项目组 变更记录表 序号 变更时间 变更人 变更内容 STL示例 1.#includealgorithm //STL通用算法 2.#includefunctional //定义运算函数(代替运算符) 目前在该头文件中可能要用到的方法包括:针对数据块的排序、查找、对集合中的每个元素进行操作(如数组)for_each、移除remove(remove_if)等。具体实例如下: 【sort用法】: int nvalue[100]; //假设里面放的是-54至55的无序数据 //按照默认的方式进行排序(从小到大) sort(nvalue, nvalue + 100); //按照从大到小的方式进行排序 sort(nvalue, nvalue + 100, greaterint()); //按照自定义的方式进行排序,假设按照绝对值的大小从小到大排序 bool FabsSort(int nElem1, int nElem2) { return fabs(nElem1) fabs(nElem2) ? false : true; //从大到小 //return fabs(nElem1) fabs(nElem2) ? true : false; } sort(nvalue, nvalue + 100, FabsSort()); 【find用法】 int nvalue[100]; int *p = NULL; //查找数组中元素值为7的pos p = find(nvalue, nvalue + 100, 7); int n = p – nvalue; //n即为7在数组中的位置 【for_each用法】 如对L0仪器状态监测对获取到的数据集进行物理量转换操作 //定义一个类对象,进行物理量转换操作,当然也可以定义一个仿函数实现类似的功能 class CLogic2Phy { public: CLogic2Phy(); void operator()(int nValue) { //假设转换公式为phy = logic * 2 – 1; nValue = nValue * 2 – 1; } } int nDataSet[100]; //假设数据集中有100个数据, //定义一个数组保存数据集中的数据 伪码:对nDataSet数组赋值; for_each(nDataSet, nDataSet + 100, CLogic2Phy()); 经过for_each之后,nDataSet中保存的值全部改变了 【remove_if用法】 假设要对提取出来的数据集进行求平均值的操作,要先将数据集中的填充值剔除掉,然后计算剩下来的有效值的平均值: //定义一个类对象 templatetypename T1 class CCheckValue { public: CCheckValue(const T1 Value) { m_Value = Value; } bool operator()(const T1 Value) const { return m_Value == Value; } private: T1 m_Value; }; int nDataSet[100]; //假设数据集中有100个数据, //定义一个数组保存数据集中的数据 伪码:对nDataSet数组赋值; //假设填充值为50 int *p = NULL; p = remove_if(nDataSet, nDataSet + 100, CCheckValueint(50)); //经过remove_if之后,所有值为50的元素已经移除到指针p之后了 CMathAlgoint * oMathAlgo; double dbAverageNum = 0.0; dbAverageNum = oMathAlgo. Average(nDataSet, p); 【关于list、map、vector的实际用法】 对list容器使用remove_if和sort算法时严禁使用通用算法中的remove_if和sort,而应该使用list的成员方法remove_if和sort。 对vector和map容器使用er

文档评论(0)

1亿VIP精品文档

相关文档