又遭遇vector了,交换不成功,程序还要崩溃,谁帮我看看,感激感激
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int main()
{
char str[]= "I like you ";
stringstream ss(str);
vector <string> vs;
string s;
while(ss> > s)
{
vs.push_back(s);
}
vector <string> ::const_iterator vi;
for(vi=vs.begin();vi!=vs.end();vi++)
{
cout < <*vi < < " " < <endl;
}
string temp;
for(int i=0;i <(vs.size())/2;i++)
{
temp=vs[i];
vs[i]=vs[vs.size()-i];
vs[vs.size()-i]=temp;
}
for(vi=vs.begin();vi!=vs.end();vi++)
{
cout < <*vi < < " " < <endl;
}
return 0;
}
把I like you 变成you I like ,我现在知道怎么解决这个功能实现问题,但是为什么我的这种方法不能实现呢,而且程序会崩溃,让我很迷惑,哪位大哥帮忙看一下
[解决办法]
交换的时候注意边界!!
vs[i]=vs[vs.size()-i];
vs[vs.size()-i]=temp;
=〉〉
vs[i]=vs[vs.size()-i-1];
vs[vs.size()-i-1]=temp;
[解决办法]
reverse泛型算法是现成的,为什么不用。
真的不肯用,抄它的代码也可以啊。
[解决办法]
vs[i]=vs[vs.size()-i];
vs[vs.size()-i]=temp;
这违反了vector的用法
[解决办法]
vs[i]=vs[vs.size()-i];的问题...
好象LZ开了2个帖子一样的问题啊...呵呵...