2 zay999abc zay999abc 于 2015.05.25 14:09 提问

一个简单的C++程序,求助。

bool func(const string &);
int main(void)
{
vector vec{ "strings", "helloworld", "zay", "uah", "kakaka" };
auto it = partition(vec.cbegin(), vec.cend(), func);
auto begin = vec.begin();
while (begin != it)
{
cout << *begin << endl;
++begin;
}
return 0;
}
bool func(const string& str)
{
if (str.size() >= 5)
return true;
else
return false;
}
出现错误:没有找到接受……类型的左操作数的运算符(或没有可接受的转换)。

17个回答

tangsha928
tangsha928   2015.05.25 16:55
已采纳

cbegin()返回指向范围内第一个元素的 const 迭代器,可以使用此成员函数替代 begin() 成员函数
partition(vec.cbegin(), vec.cend(), func);这行代码出错了
把cbegin()改为begin(), cend() 改为end()就ok了

nswcfd
nswcfd 嗯,学习了
2 年多之前 回复
nswcfd
nswcfd   2015.05.25 15:01

这种初始化vector的方式是c++ 2011的语法?

zay999abc
zay999abc vector<string>,打错了。
2 年多之前 回复
a1193561652
a1193561652   Rxr 2015.05.25 15:16

创建vector不是vector vec这样的语法码?

zay999abc
zay999abc 是像你说的那样,这个是打错了,问题不是这个。
2 年多之前 回复
a1193561652
a1193561652 怎么打掉了,是vector<string> vec这样
2 年多之前 回复
pbymw8iwm
pbymw8iwm   2015.05.25 16:50

这个是C11标准的初始化方式好像,it 最好加一下迭代器类型吧

u012377333
u012377333   Rxr 2015.05.25 18:01

是编译的时候的语法错误么?提示信息里面没有定位的信息么?

zay999abc
zay999abc 已解决,谢谢。
2 年多之前 回复
u012271952
u012271952   2015.05.25 20:23

auto it = partition(vec.cbegin(), vec.cend(), func);
auto begin = vec.begin();
???这是什么语法?缺少数据类型啊

zay999abc
zay999abc C++11
2 年多之前 回复
xy707707
xy707707   2015.05.27 17:21

cbegin()返回指向范围内第一个元素的 const 迭代器,可以使用此成员函数替代 begin() 成员函数
partition(vec.cbegin(), vec.cend(), func);这行代码出错了
把cbegin()改为begin(), cend() 改为end()就ok了

pbymw8iwm
pbymw8iwm   2017.06.20 15:30

/*
C->S 升级(强化)灵器
{
"module":"updateanima",

"session":"1111111111111",//sessionid用来校验的
"userid":"1",//玩家id
"targetid":1 灵器id
"material"=>array("ma001"=>1,"mc002"=>2);//选择的升级材料
}

S->C
{
"ts":"132323232323"//服务器时间戳

"errcode":"0"
"errmsg":""
。。。
}*/
public function updateAnima($post_array)
{
if(isset($post_array['session']) && isset($post_array['userid'])&& isset($post_array['index']))
{
//检查设备登录的数据库信息
$this->load->model("UserDB_model","Player");
$cli_session = $post_array['session'];//签名实际上就是服务器的session
$accountId = $post_array['userid'];//玩家的session其实就是玩家的id

$ret = $this->Player->checkUserAccount($accountId,$cli_session);
if($ret == false){
$return_Data = array("ts"=> time(), "errcode" => -1, "errmsg" => "Logout");

echo json_encode($return_Data); //根据实际情况返回json
}else{ //找到这个玩家,那么处理下线的时间等等
$return_Data = $this->Player->updateAnima($accountId,$post_array["targetid"],$post_array["material"]);
echo json_encode($return_Data);
}

}else{
$return_Data = array("ts"=> time(), "errcode" => -1, "errmsg" => "Parameter error");

echo json_encode($return_Data); //根据实际情况返回json
}
}

pbymw8iwm
pbymw8iwm   2017.06.20 15:36

/*
C->S 进阶灵器
{
"module":"advanceanima",

"session":"1111111111111",//sessionid用来校验的
"userid":"1",//玩家id
"targetid":1 灵器id
"material"=>array("ma001"=>1,"mc002"=>2);//选择的进阶材料
}

S->C
{
"ts":"132323232323"//服务器时间戳

"errcode":"0"
"errmsg":""
。。。
}*/
public function advanceAnima($post_array)
{
if(isset($post_array['session']) && isset($post_array['userid'])&& isset($post_array['index']))
{
//检查设备登录的数据库信息
$this->load->model("UserDB_model","Player");
$cli_session = $post_array['session'];//签名实际上就是服务器的session
$accountId = $post_array['userid'];//玩家的session其实就是玩家的id

$ret = $this->Player->checkUserAccount($accountId,$cli_session);
if($ret == false){
$return_Data = array("ts"=> time(), "errcode" => -1, "errmsg" => "Logout");

echo json_encode($return_Data); //根据实际情况返回json
}else{ //找到这个玩家,那么处理下线的时间等等
$return_Data = $this->Player->advanceAnima($accountId,$post_array["targetid"],$post_array["material"]);
echo json_encode($return_Data);
}

}else{
$return_Data = array("ts"=> time(), "errcode" => -1, "errmsg" => "Parameter error");

echo json_encode($return_Data); //根据实际情况返回json
}
}

pbymw8iwm
pbymw8iwm   2017.06.20 15:36

/*
C->S 分解灵器
{
"module":"resolveanima",

"session":"1111111111111",//sessionid用来校验的
"userid":"1",//玩家id
"targetid":1 灵器id
}

S->C
{
"ts":"132323232323"//服务器时间戳

"errcode":"0"
"errmsg":""
。。。
}*/
public function resolveAnima($post_array)
{
if(isset($post_array['session']) && isset($post_array['userid'])&& isset($post_array['index']))
{
//检查设备登录的数据库信息
$this->load->model("UserDB_model","Player");
$cli_session = $post_array['session'];//签名实际上就是服务器的session
$accountId = $post_array['userid'];//玩家的session其实就是玩家的id

$ret = $this->Player->checkUserAccount($accountId,$cli_session);
if($ret == false){
$return_Data = array("ts"=> time(), "errcode" => -1, "errmsg" => "Logout");

echo json_encode($return_Data); //根据实际情况返回json
}else{ //找到这个玩家,那么处理下线的时间等等
$return_Data = $this->Player->resolveAnima($accountId,$post_array["targetid"]);
echo json_encode($return_Data);
}

}else{
$return_Data = array("ts"=> time(), "errcode" => -1, "errmsg" => "Parameter error");

echo json_encode($return_Data); //根据实际情况返回json
}
}

共17条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片