将对象向量的指针作为参数传递,但差异更大
Passing pointer of vector of objects as arguments but a lot more different
这个问题确实看起来像是旧问题的复制和粘贴(有点像),但我向你保证,情况要不同得多,而且很难解释,所以在你谋杀我微不足道的声誉之前,请听我说出来。
我在将包含对象的向量放入函数参数中,然后扫描它们并将特定对象放入另一个函数的参数中时遇到问题,然后该参数将使用该特定对象的所有值。
例如,如果存在玩家职业和敌人职业:
class player{
public:
int id;
string name;
};
class enemy{
public:
int eid;
string name;
};
这些类的一些对象存储在它们自己的向量中:
player example;
example.id = 1;
example.name = "example";
enemy badEnemy;
badEnemy.eid = 1;
badEnemy.name = "badEnemy";
vector<player> allPlayers;
vector<enemy> allEnemys; //I know the spellings wrong but am to reluctant to change it
allPlayers.push_back(example);
allEnemys.push_back(badEnemy);
然后有一个函数可以打印出对象名称:
int fightEnemy(player player, enemy enemy) {
cout << player.name << endl;
cout << enemy.name << endl;
return 0;
}
之后,将有一个函数扫描矢量中的特定对象并将它们插入到fightEnemy
函数中
int enemyComboCheck(int id1, int id2, vector<Player>* allPlayers, vector<enemy>* allEnemys){
int iteratorForPlayer = 0;
id1 -= 1;
id2 -= 1;
for(int i = 0; i < 18; ++i){
if(id1 == allPayers[iteratorForPlayer].id && id2 == allEnemys[i].id) fightEnemy(allPlayers[iteratorForPlayer], allEnemys[i]);
//how do I pass the scanned object into the other function
}
return 0;
}
我想我的主要问题是如何通过向量将扫描的对象传递到另一个函数中?我是否必须在另一个函数中使用向量?
很抱歉所有错误的格式,无论如何谢谢!
你传递它的方式与在if
语句中引用它们的方式完全相同。
fightEnemy(allPlayers[iteratorForPlayer], allEnemies[i]);
并修复拼写。 这就是全局查找和替换的目的。
我建议更改fightEnemy
的签名以获取引用,这样您就不必复制对象,并且如果需要,您可以更改命中点之类的内容。 这不会改变你称呼它的方式:
int fightEnemy(player &player, enemy &enemy)
相关文章:
- 如何将子类作为函数的参数传递给期望基类,然后将该对象传递到指向这些抽象类对象的指针向量中?
- 将任意模板向量作为函数参数C++传递
- 在将向量作为参数传递给函数后,我无法访问函数中向量的元素
- 如何将对向量的引用作为可变参数传递?
- 是否可以交换在 c++ 中作为函数 func(say) 中的参数传递的 const 向量的两个元素,例如:vector<int>func (const vector<int>&
- 是否可以使用将不同参数传递给构造函数的类的不同实例初始化向量
- 将对象向量的指针作为参数传递,但差异更大
- 如何将数字作为函数参数C 传递到向量
- E0312,C2664尝试将向量对象作为函数参数传递时错误
- 如何将一个向量作为参数传递给另一个向量
- 如何在调用方法函数中将列表、向量或数组作为参数传递
- 在 VS12 中将初始值设定项列表作为向量的函数参数传递时出现语法错误
- 不能将向量作为参数 c++ 传递
- 如何将对象字段作为函数参数(特征向量)传递
- 将指针向量作为参数传递
- 在C++中将对象向量的引用作为参数传递
- c++将非模板特征向量作为函数参数传递,并在函数中对其进行修改
- 将字符串的二维数组和向量作为参数传递给函数
- 将对向量的引用作为参数传递
- 将向量数组作为函数参数传递(值不会改变)