C++ 指针向量的访问指针方法

C++ 指针向量的访问指针方法,c++,c++11,C++,C++11,我不确定如何准确地表达这个问题,但我已经声明了两个向量 std::vector<enemy*> enemies; std::vector<hit_area *> effects; 当我尝试访问成员、方法、敌人或效果时,它可以正常工作 if(effects[d]->collide(enemies[i]->x, enemies[i]->y enemies[i]->w, enemies[i]->h)) 我得到错误“基操作数的“->”具有非指针类

我不确定如何准确地表达这个问题,但我已经声明了两个向量

std::vector<enemy*> enemies;
std::vector<hit_area *> effects;
当我尝试访问成员、方法、敌人或效果时,它可以正常工作

if(effects[d]->collide(enemies[i]->x, enemies[i]->y enemies[i]->w, enemies[i]->h))
我得到错误“基操作数的“->”具有非指针类型“std::vector*”。
我可以访问敌人和效果的大小,它只是访问产生问题的方法

通常你不传递向量的地址。相反,你传递一个引用:

void func(std::vector<enemy*> &enemies) {
std::cout << enemies.size() << '\n';
std::cout << enemies[i]->x << '\n';
}

// Call it like:
func(enemies);
void func(标准::向量和敌人){

std::cout
敌人[i]
将是一个指针,您需要使用
->
访问
x
void func(std::vector<enemy*> &enemies) {
std::cout << enemies.size() << '\n';
std::cout << enemies[i]->x << '\n';
}

// Call it like:
func(enemies);
std::cout << enemies->operator[](i).x << '\n';