一个类数据类型的STL例子

原创 2003年10月09日 21:56:00

  在STL编程中我们常见的数据类型是char int string等。若要用复杂数据类型(类类型),你必须重载必要的运算符。下例即演示了这一点:

#include <iostream>
#include <list>
using namespace std;

// 重载 < 运算符

class CMyClass
{
   public:
  
      int x;
      int y;
      char z;

 

      CMyClass()
   {
         x = 0;
         y = 0;
         z = ' ';
   }
      ~CMyClass(){};
   void print(const CMyClass &CMyClass)
   {
           cout << CMyClass.x << ' ' << CMyClass.y << ' ' << CMyClass.z << endl;
   }

 

     int operator<(const CMyClass &rhs) const
  {
          if( this->x == rhs.x && this->y == rhs.y && this->z < rhs.z) return 1;
          if( this->x == rhs.x && this->y < rhs.y) return 1;
          if( this->x < rhs.x ) return 1;
          return 0;
  }
};

 

// 必须用LIST模版类的内建SORT函数排序
list<CMyClass> sortIt( list<CMyClass>& myList)
{
   myList.sort();                                             
   return myList;
}

main()
{
   list<CMyClass> myList, sortedList;
   CMyClass MyClass ;

   MyClass.x=3;
   MyClass.y=2;
   MyClass.z='A';
   myList.push_back(MyClass);  

   MyClass.x=2;
   myList.push_back(MyClass);  

   MyClass.z='B';
   myList.push_back(MyClass);

   MyClass.x=1;
   MyClass.y=5;
   MyClass.z='C';
   myList.push_back(MyClass);

   list<CMyClass>::iterator i;
   
   for(i=myList.begin(); i != myList.end(); ++i)
   {
    cout<< " ";
    MyClass.print(*i);   
   }
   cout << endl;

   sortedList = sortIt( myList );
   cout << "Sorted: " << endl;
   for(i=sortedList.begin(); i != sortedList.end(); ++i)
   {
    cout<< " ";
    MyClass.print(*i);   
   }
   cout << endl;

   return 0;
}

输出:

 3 2 A
 2 2 A
 2 2 B
 1 5 C
Sorted: 
 1 5 C
 2 2 A
 2 2 B
 3 2 A

STL Sort的五种使用示例

Sort是一种高效的排序算法,常使用的五种示例如下。 示例代码采用编译器vs2012,任何一款支持c++11标准的编译器都可以运行。包含头文件#include #include #include...
  • segen_jaa
  • segen_jaa
  • 2016年04月14日 21:28
  • 1317

C++11 并发指南(atomic 类型详解四 C 风格原子操作介绍)

所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是他确保了在同一时刻只有唯一的线...
  • flyingleo1981
  • flyingleo1981
  • 2013年11月06日 14:45
  • 3127

西门子PLC学习笔记五-(编程语言、数据类型)

1.编程语言 PLC的编程语言有STL(语句表)、LAD(梯形图)、FBD(功能块图)、GRAPH(顺序功能图)、SCL(结构化控制语言)、HiGraph(图形编程语言)、CFC(连续功能图)等。S...
  • fengshuiyue
  • fengshuiyue
  • 2014年09月28日 10:42
  • 7841

把输入数据类型封装成一个类

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
  • qq_36333177
  • qq_36333177
  • 2017年12月23日 21:27
  • 15

Ajax读取xml数据类型例子

  • 2011年10月16日 15:29
  • 10KB
  • 下载

dwr各种例子(各种数据类型返回值+包+导入可用+注释+附带讲解)

  • 2010年12月24日 15:14
  • 514KB
  • 下载

空间数据类型例子大集合

  • 2009年04月05日 23:14
  • 64KB
  • 下载

用printf输出 STL string数据类型

用printf输出 STL string类型数据总结 一.例子 #include #include using namespace std; int main() {  ...
  • xunmeng2002
  • xunmeng2002
  • 2015年02月27日 11:08
  • 246

STL--priority_queue--自定义数据类型

STL中priority_queue的声明模板有3个参数priority_queue。 当使用的数据类型Type为自定义数据类型时有以下3种方法。 (1)写仿函数 #include #include ...
  • Fresh__air
  • Fresh__air
  • 2017年03月14日 12:13
  • 109

STL之atio()数据类型转换 n-1位数

描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。 输入 第一行为M,表示测试数据组数。 接下来M行,每行包含...
  • u010203480
  • u010203480
  • 2017年05月17日 15:35
  • 118
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个类数据类型的STL例子
举报原因:
原因补充:

(最多只允许输入30个字)