各位劳烦看一下那错了?
//意图,给出一个“a39b39”这样的字符串,他能把字母和后面的两个数字对应起来。比如,//map['a']==39
#include<map>
#include<vector>
#include<string>
#include<iostream>
using namespace std;
typedef map<char,int> my_map;
vector<my_map*> expecportion;
//各位,看一下那错了;
//给出一个“a39b39”这样的字符串,他能把字母和后面的两个数字对应起来
void initexpecportion(vector<string>& pri_expecportion)
{
int b;
for(int i=0;i<pri_expecportion.size();i++)
for(int j=0;j<pri_expecportion[i].size ();j+=3)
{
map<char,int>* a=new map<char,int>;
b=(pri_expecportion[i][j+1]-48)*10+(pri_expecportion[i][j+2]-48); //提取字母后的两个数字
(*a)[pri_expecportion[i][j]]=b; //复给相应的map
expecportion.push_back(a); //为什么就第一次正确?即第一次,i,j==0,test==12,后面全等于零?
int test=(*expecportion[i])[pri_expecportion[i][j]];
}
}
void main()
{
expecportion.reserve(26);
vector<string> a;
a.push_back("a12b45c22");
a.push_back("a67v45d34");
initexpecportion(a);
}