hur.cn - 华软网

 热门搜索

这样定义是什么意思呢?

  作者:未知    来源:网络    更新时间:2011/10/7
vector <CTiny*>             g_v_pCharacters;

vector <CTiny*> 是什么意思呢?
---华软 网友回答---
CTiny应该是个类。
这样定义,应该是用vector容器保存CTiny类的对象指针。
如:
C++">
for (int i = 0; i < 10; i ++)
{
  CTiny* tiny = new CTiny;
  g_v_pCharacters.push_back(tiny);//压入10个tiny对象指针
}
CTiny* tiny = new CTiny;
g_v_pCharacters.push_back(tiny);//压入第11个tiny对象指针

//这样,你可以生成n个对象,并保存这些指针,方便操作,如操作第5个对象:
g_v_pCharacters[4]->SetProp();

//如要删除第5个对象:
delete g_v_pCharacters[4];
g_v_pCharacters.earse(&g_v_pCharacters[4]);

//如关闭主程序时,删除所有对象:
int n = g_v_pCharacters.size();
for (int i = 0; i < n; i ++)
{
  delete g_v_pCharacters[i];
}
g_v_pCharacters.clear();



---华软网友回复---
vector是STL中的模板类,基本上就是一个可以动态伸缩的数组。
vector <CTiny*>就是由指向CTiny对象的指针组成的vector。

不知道楼主想了解的是不是这个。这可是C++的基础知识了。
---华软网友回复---
用指针数组一样可以保存多个对象指针,但数组用前必须定义个固定尺寸,而你在程序中可能生成n个对象,这个n不确定,所以就不能用数组了.

用动态内存一样保以保存多个对象指针,如:
CTiny* pTiny = new CTiny[n];
但删除\插入对象指针,比较复杂.

所以用容器就是一个最好的选择.因为容器是个可变数组,可以实时操作.
vector是容器的一种,通常是这样定义的:
vector<数据类型> 变量名;

vector<CTiny*> g_v_pCharacters;
g_v_pCharacters;
意思:就是定义一个vector容器,用以保存CTiny类的对象指针,变量名是g_v_pCharacters
当然你可以:
vector <CTiny> g_v_pCharacters;
直接保存对象,但对象容量大些,从容器中读取和保存时,用时较长,不如指针好.

用习惯了容器,你就会感觉到比数组和动态内存好用多了.
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。