首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟我要在一个CArray中改变一个值要用什么函数

2012-02-27 
我要在一个CArray中改变一个值要用什么函数比如我定义了结构体typedefstruct_userInfor{TCHARchusename[MA

我要在一个CArray中改变一个值要用什么函数
比如我定义了结构体
typedef   struct   _userInfor
{
TCHAR   chusename[MAX_NAME_STRING];;
TCHAR   chuseip[IP_STRING];
BOOL     bStatus[MAX_IP_ADS];
}userInfor;
extern   CArray <userInfor,userInfor&>   g_userInfor;

我本来有值
lili     878
meimei       565
lala         4545
我定义了
userInfor   AdsSeUseInfor;

我要把
meimei       565     改成     meimei       789

用什么函数阿SetAt吗?
void   SetAt(
      INT_PTR   nIndex,
            ARG_TYPE   newElement  
);我不知道这个   nIndex是指   哪个,这两个参数分别指哪两个?


还是不能这么做要先删除这行,在插入一行,具体怎么做。指点下阿

[解决办法]
INT_PTR nIndex:你要修改的那个值的下标;
ARG_TYPE newElement:你要改成的新值。
[解决办法]
去VC版问吧。CArray是MFC私自带的。
[解决办法]

INT_PTR nIndex:你要修改的那个值的下标;
ARG_TYPE newElement:你要改成的新值。
====================
同意

ps:
现删除,
再插入也是可以的 ~
[解决办法]
xtern CArray <userInfor,userInfor&> g_userInfor;
================
引用不支持一般意义的赋值运算,因此元素用引用恐怕是有问题的(如果是STL中是一定不可以的.)
[解决办法]
楼上多虑了,MFC中的容器,一般第一个参数是元素类型,第二个参数是引用或返回值类型。
不像STL中,参数和返回值类型已写死:即直接使用元素类型的引用类型。
[解决办法]
Example
CArray <CPoint,CPoint> myArray;
CPoint pt;

// Add elements to the array.
for (int i=0;i < 10;i++)
myArray.Add( CPoint(i, 2*i) );

// Modify all the points in the array.
for (i=0;i <= myArray.GetUpperBound();i++)
{
pt = myArray.GetAt(i);
pt.x = 0;
myArray.SetAt(i, pt);
}

热点排行