【发布时间】:2014-07-01 16:26:15
【问题描述】:
我有一个全局变量“testGrid”,我正在尝试创建一个映射到该变量,以便可以用字符串引用它。该地图似乎可以为网格分配值,但它并没有按照我的意图将它们分配给“testGrid”。
地图是否创建了一个与全局变量分开的新网格?如何让地图正确引用网格?在这段代码中,两个测试的输出应该是相同的。
#include <iostream>
#include <map>
using namespace std;
struct signalGrid{
double signal[20][200];
signalGrid();
};
void mapTest(std::map<string,signalGrid> &temp_map);
map<string,signalGrid> signalIndex;
signalGrid testGrid;
int main(){
int i;
mapTest(signalIndex);
for(i=0;i<5;i++){
signalIndex["T1"].signal[i][0]=5;}
for(i=0;i<5;i++){
cout<<"TEST="<<testGrid.signal[i][0]<<"\n";}
for(i=0;i<5;i++){
cout<<"TEST2="<<signalIndex["T1"].signal[i][0]<<"\n";}
return 0;
}
void mapTest(std::map<string, signalGrid> &temp_map){
temp_map["T1"]=testGrid;
return;
}
signalGrid::signalGrid(){
int i,j;
for(i=0;i<20;i++){
for(j=0;j<200;j++){
signal[i][j]=0;}}
}
【问题讨论】:
-
@pmr 不完全是,不幸的是。 :( 他们仍然有同样的误解,但这是一个不同的问题。