发送用于迭代的vector的基址

Sending base address of vector for Iterating

本文关键字:vector 迭代 用于      更新时间:2023-10-16

我有一些属性的结果类

class Result
{
   public:
   GetId();
   GetName();
   SetName();
   SetId();
};

我还有一个类它将创建result arraylike

class A
{
  public:
   void Method()
   {
     //array of result using vector
    Callback->OnCallback(array of result);
   }

};

现在我有回调类

class Callback
{
  public:
 void OnCallback(Result*)
 {
   //Need to loop through result;
 }
};

现在我需要在OnCallback方法中循环结果数组的机制,但我不需要将结果作为矢量/数组发送。我只需要发送基地地址从类A方法()到OnCallback方法。我怎样才能做到呢?

你的问题不清楚。这有帮助吗?

#include <iostream>
void foo(int* p)
{
  for(unsigned int k=0; k<3; ++k)
    std::cout << *(p+k) << " ";
  std::cout << std::endl;
}
int main()
{
  int A[3];
  A[0] = 10;
  A[1] = 11;
  A[2] = 12;
  foo(A);
  return 0;
}

请注意,主叫函数(main)传递的是A,而不是A[0]

如果您创建一个类型为Result的对象:

Result r1;

那么你可以像这样传递它:

Callback->OnCallback(&r1);

将传递地址(因为&符号)而不是对象本身。