将有法令的变量名表示的内容赋值给一个数组,怎样让程序把通过字符串操作合成的变量名当做变量名,而不是普通字符串

将有规律的变量名表示的内容赋值给一个数组,怎样让程序把通过字符串操作合成的变量名当做变量名,而不是普通字符串
假如我有一系列变量,假如分别表示第n分钟的速度v,名字都很有规律,分别是v0,v1,v2,v3……并且均已赋值,如果我想把他们逐个赋值给数组b[],该怎么弄呢?
我可不想一个个赋值,
b[0]=v0;
b[1]=v1;
b[2]=v2;
………………………………………………
难道有一万个变量名,要写一万行赋值代码,OMG!
我想的是利用for循环,把v0,v1,v2,v3……变量名通过字符串操作(把v和循环量i合并为一个字符串)拼出来,然后在循环中赋值给数组b[]
类似下面:
for(i=0;i<……;i++)
  合并v与i,得到vi
  b[i]=vi

当然,这只是想当然,关键是怎么让程序碰到vi时,将它当做前面表示数字的变量,而不是单单一个字符串呢?

------解决方案--------------------
你要这么想,你那v1---v10000,为什么他不是数组呢?

而且,如果这个已经是事实了,说明你的程序逻辑就是很复杂,那也没有办法,也要写1w行赋值啊。

另外有小技巧来搞定v1-v10000的赋值,可以。
但是10000太大,模板是用不上了。。。没法递归编译10000次。。。

或者让v1-v10000的内存布局有点规律,也好啊。。。
------解决方案--------------------
我个人认为你根本没有办法实现这个需求,如果你的不让我们问为什么的事情不可改变的话,你只能一个变量一个变量赋值。即使2F说的模板和递归,也是无法解决即使只有2个变量名的情况
探讨
当然,如果有其他好的解决办法,也可以啊,只要能把问题解决了就可以。
但是请不要问我为什么一开始不把速度v定义为数组,我肯定是有其他的需求,呵呵。

------解决方案--------------------
映射到数组方法:不能用向导
1. 定义一个数组作为成员,注意,必须不再//{{AFX_DATA(ClassName)和//}}AFX_DATA之间定义
int arr[3];
2. 在构造函数中给他们初始化
memset(&arr[0],0,sizeof(arr));

3. 修改DoDataExchange如下
你只需要确保两点a) 需要映射到这个数组的控件的id必须连续(否则你无法用循环)
b) 他们不在我上面说的那两个注释中间
C/C++ code

void CTest3Dlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
       int i;
       for(i=0; i < 3; i++) {
         DDX_Text(pDX, IDC_EDIT1+i, arr[i]);
       };
    //{{AFX_DATA_MAP(CTest3Dlg)
    //}}AFX_DATA_MAP
}