首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

来来来,关于一个stl的有关问题,拜托大侠们给小弟我看看,如何不能编译

2012-03-15 
来来来,关于一个stl的问题,拜托大侠们给我看看,怎么不能编译啊#include iostream#include string#incl

来来来,关于一个stl的问题,拜托大侠们给我看看,怎么不能编译啊
#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;
}
vector <string>   temp;
for(int   i=0;i <(vs.size())/2;i++)
{
temp=vs[i];     //这个地方编译不过去啊
vs[i]=vs[vs.size()-i];
temp=vs[vs.size()-i];
}
for(vi=vs.begin();vi!=vs.end();vi++)
{
cout < <*vi < < "   " < <endl;
}
return   0;
}
把I   like   you变成you   like   I,我知道用list就简单了,我现在用vector,所以需要交换,不知道怎么编译不过去,帮帮看看,谢谢

[解决办法]
reverse泛型算法是现成的。
[解决办法]
vector <string> temp;
==========
string temp;
[解决办法]
temp是vector <string> ,而vs[i]是vector <string> 的??不是吧...
vs是vector <string> 的吧...
[解决办法]
vs[i]=vs[vs.size()-i];有点问题
[解决办法]
....你看看你的temp是什么类型先
[解决办法]
vs[i]=vs[vs.size()-i];
=======================
vector里面不允许这样赋值
[解决办法]
Subscripting Does Not Add Elements
vector <int> ivec; // empty vector
for (vector <int> ::size_type ix = 0; ix != 10; ++ix)
ivec[ix] = ix; // disaster: ivec has no elements

The right way to write this loop would be
for (vector <int> ::size_type ix = 0; ix != 10; ++ix)
ivec.push_back(ix); // ok: adds new element with value ix

[解决办法]
你的temp没有必要声明为vector <string> 类型的。string就够了

vector <string> temp; --> string temp;
for(int i=0;i <(vs.size())/2;i++)
{
temp=vs[i]; //这个地方编译不过去啊 --> 因为你付值运算两边的类型不一致,且无法隐试转换
vs[i]=vs[vs.size()-i];
temp=vs[vs.size()-i];
}

[解决办法]
while(ss> > s) 直到失败才停止,满恐怖的.
[解决办法]
“while(ss> > s) 直到失败才停止,满恐怖的.”
哎,ctrl_z/F6结束输入

热点排行