如何改变vector某位置中的值
//Return the afternoon program
vector<Program> getAfternoonProgram(string html)
{
ATVAfternoonSearchOption aso;
vector<Program> Programs;
Programs = getProgram(aso,html);
for(int i=0;i<Programs.size();i++)
{
Program p = (Program)Programs.at(i);
p.setStartTime(DateUtil::toPM( p.getStartTime() ) );
//想将这个已经改变的p替代原来的取出来的p
}
}
问题点数:20、回复次数:4Top
1 楼zxl_lim(Zhang'XL)回复于 2003-09-04 15:59:29 得分 10
用iterator不可以吗?
vector<Program>::iterator p;
for(p = programs.begin(); p != programs.end(); ++p)
{
*p = DateUtil::toPM(*p);
}Top
2 楼zcchm(lone wolf)回复于 2003-09-04 16:24:54 得分 10
vector可以采用下标访问返回元素的引用,直接修改。
定义Program p是多余了。
Top
3 楼dmhorse(dmhorse)回复于 2003-09-04 16:35:36 得分 0
toPM的入口是string啊
//Return the afternoon program
vector<Program> getAfternoonProgram(string html)
{
ATVAfternoonSearchOption aso;
vector<Program> programs = getProgram(aso,html);
programs = convertToPM(programs);
return programs;
}
//Convert start time of the set of programs
vector<Program> convertToPM(vector<Program> programs)
{
vector<Program> programs2;
for(int i=0;i<programs.size();i++)
{
Program p = (Program)programs.at(i);
p.setStartTime(DateUtil::toPM( p.getStartTime() ) );
programs2.push_back(p);
}
return programs2;
}
我改成了这样,不知哪位能帮一下忙,修改一下Top
4 楼zcchm(lone wolf)回复于 2003-09-04 19:13:00 得分 0
有个swap函数,你查查看Top




