发送用于迭代的vector的基址
Sending base address of vector for Iterating
我有一些属性的结果类
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);
将传递地址(因为&
符号)而不是对象本身。
相关文章:
- std::vector::迭代器是否可以合法地作为指针
- 从 std::vector 迭代器中执行函数指针
- 基于 C++ 范围的 std::vector 迭代的顺序
- c std :: vector迭代器构造函数,first == last
- 为什么通过"std::vector"迭代比通过"std::array"迭代更快
- 为什么 std::vector 迭代器在 erase() 调用后失效?
- Vector::迭代器在与开始比较时崩溃
- 为自定义类继承std::vector::迭代器
- 为什么 vector::迭代器在重新分配时失效
- C++ std::vector 迭代器错误
- 如何拥有:map<T,vector<迭代器来映射自身> >?
- 为什么std::vector迭代器在重新分配其他向量时无效
- 试图让Vector迭代器以不同的顺序进行迭代
- 处理vector迭代中的访问冲突异常
- vector的vector迭代器
- 使用std::vector::迭代器修改存储在std::vector中的值
- 迭代并移除Vector中的元素.错误:Vector迭代器不可递增
- 将vector迭代器转换为成员指针
- Vector迭代器在类中不兼容
- 调试断言:Vector迭代器不兼容(c++)