各位劳烦看一下那错了?

adrianfeng 2006-09-24 10:28:21
//意图,给出一个“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);

}
...全文
95 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
adrianfeng 2006-09-24
  • 打赏
  • 举报
回复
解决了,多谢!
lw1a2 2006-09-24
  • 打赏
  • 举报
回复
#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]];


}


}
int main()
{
expecportion.reserve(26);
vector<string> a;
a.push_back("a12b45c22");
a.push_back("a67v45d34");

initexpecportion(a);

//测试输出
for (vector<my_map*>::iterator it=expecportion.begin(); it!=expecportion.end(); ++it)
{
my_map::iterator mm=(*it)->begin();
while(mm!=(*it)->end())
{
cout<<mm->first<<' '<<mm->second<<endl;
++mm;
}
}


system("pause");
}



出问题的就是那个int test=(*expecportion[i])[pri_expecportion[i][j]];
另外,那个new....

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧