1)是用Vector容器代替数组

2)使用数组指针(需要注意局部变量的问题,指针是否需要用new创建)

int red [ 3 ]   = { 1 , 0 , 0 }; 
int green [ 3 ] = { 0 , 1 , 0 }; 
int blue [ 3 ]     = { 0 , 0 , 1 }; 
std
 :: map < int , int (*)[ 3 ]> colours ; 
colours
 . insert ( std :: pair < int , int (*)[ 3 ]>(( GLUT_LEFT_BUTTON ,& red )); 
colours
 . insert ( std :: pair < int , int (*)[ 3 ]>(( GLUT_MIDDLE_BUTTON ,& blue )); 
colours
 . insert ( std :: pair < int , int (*)[ 3 ]>(( GLUT_RIGHT_BUTTON ,& green )); 
//Watch out for scope here, you may need to create the arrays on the heap.

3)使用结构体来构造代替数组的元素,或把数组直接放在结构体内

struct Triple 
{ 
    
int color [ 3 ]; 
}; 

 
 //Later in code 
Tripple red = { 1 , 0 , 0 }, green = { 0 , 1 , 0 }, blue = { 0 , 0 , 1 }; 
std
 :: map < int , Triple > colours ; 
colours
 . insert ( std :: pair < int , Triple >(( GLUT_LEFT_BUTTON , red )); 
colours
 . insert ( std :: pair < int , Triple >(( GLUT_MIDDLE_BUTTON , blue )); 
colours
 . insert ( std :: pair < int , Triple >(( GLUT_RIGHT_BUTTON , green ));

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2023-03-30
  • 2022-01-07
  • 2022-12-23
  • 2021-09-05
  • 2021-12-05
猜你喜欢
  • 2021-09-16
  • 2022-12-23
  • 2021-05-18
  • 2021-09-01
  • 2021-10-24
  • 2021-07-08
  • 2022-12-23
相关资源
相似解决方案