微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何保存此向量

如何解决如何保存此向量

| 我想知道如何定义向量变量,以将该代码输出保存在向量中?
/*what should be here?*/=agent.GetInfoState().GetPositionInfo().GetCloseTeammatetoTeammate(2);
GetcloseTeammatetoTeammate
定义为:
const std::vector<Unum> & GetCloseTeammatetoTeammate(Unum i) 
{   
  Assert(i > 0); return GetCloseTeammatetoPlayer(i); }
    

解决方法

我一定在这里想念什么。这不是简单的:
const std::vector<Unum> &my_vector = agent.GetInfoState().GetPositionInfo().GetCloseTeammateToTeammate(2);
    ,
GetCloseTeammateToTeammate
返回对常数向量的引用。 只需使用:
const std::vector<Unum>& x = agent.GetInfoState().GetPositionInfo().GetCloseTeammateToTeammate(2);
获取参考。请注意,您只能调用vector的const成员函数。 要获取向量的副本,请执行以下操作:
std::vector<Unum> x = agent.GetInfoState().GetPositionInfo().GetCloseTeammateToTeammate(2);
仅在确实需要时才进行复制。     ,根据您的实际需求,有两种不同的选择。如果您只打算在短期内对给定的向量做一些处理(并假设单线程执行和其他几点考虑),则可以保留引用:
std::vector<Unum> const & v = agent.GetInfoState().GetPositionInfo().GetCloseTeammateToTeammate(2);
for ( std::vector<Unum>::const_iterator it = v.begin(),end = v.end(); it != end; ++it )
{
    // do something
}
如果您要保存的是向量的副本,以便以后可以检查更改,或者您想按原样使用向量而不进行任何以后的更改(请注意,这并不意味着线程安全!) ,只需将其复制:
std::vector<Unum> copy = agent.GetInfoState().GetPositionInfo().GetCloseTeammateToTeammate(2);
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。