程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> STL map使用自定義對象做key

STL map使用自定義對象做key

編輯:C++入門知識

[cpp]
#include <map>  
using namespace std; 
 
struct grid 

    unsigned short x; 
    unsigned short y; 
    bool operator<(const grid& g)const 
    { 
        if ( y < g.y) 
        { 
            return true; 
        } 
                else if(y==g.y && x < g.x) 
        { 
            return true; 
        } 
        return false; 
    } 
}; 
 
int _tmain(int argc, _TCHAR* argv[]) 

    map<grid, int> lev; 
    grid g; 
 
    g.x = 0; 
    g.y = 0; 
    lev[g] = 1; 
 
    g.x = 0; 
    g.y = 1; 
    lev[g] = 2; 
 
    g.x = 1; 
    g.y = 0; 
    lev[g] = 3; 
 
    g.x = 1; 
    g.y = 1; 
    lev[g] = 4; 
 
    grid gg; 
    gg.x = 1; 
    gg.y = 0; 
 
    int nn = lev[gg]; 
    return 0; 

#include <map>
using namespace std;

struct grid
{
 unsigned short x;
 unsigned short y;
 bool operator<(const grid& g)const
 {
  if ( y < g.y)
  {
   return true;
  }
                else if(y==g.y && x < g.x)
  {
   return true;
  }
  return false;
 }
};

int _tmain(int argc, _TCHAR* argv[])
{
 map<grid, int> lev;
 grid g;

 g.x = 0;
 g.y = 0;
 lev[g] = 1;

 g.x = 0;
 g.y = 1;
 lev[g] = 2;

 g.x = 1;
 g.y = 0;
 lev[g] = 3;

 g.x = 1;
 g.y = 1;
 lev[g] = 4;

 grid gg;
 gg.x = 1;
 gg.y = 0;

 int nn = lev[gg];
 return 0;
}
STL中map,當使用自定義對象做key時,需要重載<操作符,示例

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved