我希望能够通过文本字符串调用特定的矩阵。我试图设置一个地图来做到这一点,但我并没有说得很对。这个C++地图有什么问题?
我注意到,如果我指的是矩阵,我试图通过它的地图名称进行操作,它似乎工作(即,signalIndex["T2"].signal[i][0]=10)
,但是如果我尝试引用地图标签指向的矩阵,它不工作。有什么建议?
#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 testGrid1,testGrid2;
int main(){
int i;
signalGrid tempGrid;
mapTest(signalIndex);
tempGrid=signalIndex["T1"];
for(i=0;i<5;i++){
tempGrid.signal[i][0]=5;}
for(i=0;i<5;i++){
cout<<"TEST="<<tempGrid.signal[i][0]<<"\n";}
for(i=0;i<5;i++){
cout<<"TEST="<<testGrid1.signal[i][0]<<"\n";}
for(i=0;i<5;i++){
cout<<"TEST2="<<signalIndex["T1"].signal[i][0]<<"\n";}
for(i=0;i<5;i++){
signalIndex["T2"].signal[i][0]=10;}
for(i=0;i<5;i++){
cout<<"TEST3="<<testGrid2.signal[i][0]<<"\n";}
for(i=0;i<5;i++){
cout<<"TEST4="<<signalIndex["T2"].signal[i][0]<<"\n";}
return 0;
}
void mapTest(std::map<string,signalGrid> &temp_map){
temp_map["T1"]=testGrid1;
temp_map["T2"]=testGrid2;
return;
}
signalGrid::signalGrid(){
int i,j;
for(i=0;i<20;i++){
for(j=0;j<200;j++){
signal[i][j]=0;}}
}
你能举个例子就不会更新相应的矩阵,在代码中,你希望工作,但没有。目前还不清楚为什么你已经包含了所有这些测试用例。只有其中一些工作?你能告诉我们哪些工作或哪些有问题吗? –
我希望能够通过引用“signalIndex [”T1“]。signal [x] [y]”来操作“testGrid1”,所以没有一个测试用例真的有效。当我说“signalIndex [”T2“]。signal [i] [0] = 10时,我不知道代码在做什么;”它好像将信息存储在某处,但不在testGrid2中,因为我希望它。 – user1042343