gpt4 book ai didi

c++ - 正确返回 vector 引用

转载 作者:行者123 更新时间:2023-11-28 07:33:13 34 4
gpt4 key购买 nike

我现在正在做一个项目,我对如何处理这个项目感到困惑。

class Unit: public Entity {
string Name;
int HP;
int MP;
int Agi;
int Spr;
int Def;
int Atk;
int Lvl;
int Exp;
std::vector<int> states;
string unitType;
public:
int GetHP() {return HP};
int GetMP() {return MP};
int GetAgi() {return Agi};
int GetSpr() {return Spr};
int GetDef() {return Def};
int GetAtk() {return Atk};
int GetLvl() {return Lvl};
int GetExp() {return Exp};
std::vector<int>& GetStates() {return &states};
string GetUnitType() {return unitType};
virtual void SetHP(int newValue);
virtual void SetMP(int newValue);
virtual void SetAgi(int newValue);
virtual void SetSpr(int newValue);
virtual void SetDef(int newValue);
virtual void SetAtk(int newValue);
virtual void SetLvl(int newValue);
virtual void SetExp(int newValue);

我需要返回对“std::vector states”的引用,以便我可以遍历它并查找值。我相信我应该使用 Set 因为我只有一个值而且不能重复,但我会把它留到以后再用。 “std::vector& GetStates() {return &states}”是否正确?应该将其更改为“std::vector& const GetStates() {return &states}”还是我完全关闭?我在这里看到了一个与此类似的帖子,但它没有具体回答我的问题,因为他们没有以与此相同的借口使用它。

最佳答案

如果statesstd::vector<int> , 然后 &statesstd::vector<int>* , 不是 std::vector<int>& .

是否返回引用的决定是由函数签名中提供的返回类型决定的,而不是由 return 决定的。执行中的声明。就做 return states .

关于c++ - 正确返回 vector 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17257308/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com