gpt4 book ai didi

c++ - 您将如何取消引用 vector 迭代器

转载 作者:行者123 更新时间:2023-11-28 04:05:22 28 4
gpt4 key购买 nike

我目前正在学习 C++,遇到了一个小问题。下面的代码在 vector 上打印地址,但我如何让它溢出地址后面的内容?

std::vector<BasePayroll*> emps;
emps.push_back(&Jane);

for (std::vector<BasePayroll*>::iterator it = emps.begin(); it != emps.end(); it++ ) {
std::cout << *it;
}

最佳答案

std::vector<BasePayroll*> emps; // when you dereference the iterator once you get
// what you have stored in the vector, a BasePayroll*
emps.push_back(&Jane);

for (std::vector<BasePayroll*>::iterator it = emps.begin(); it != emps.end(); it++ ) {
std::cout << *(*it); // do double dereferencing to get a BasePayroll& instead
}

你也可以让 range-based for loop执行第一级取消引用:

for(BasePayroll* pbpr : emps) {
std::cout << *pbpr;
}

要使上述工作正常进行,您还需要

std::ostream& operator<<(std::ostream& os, const BasePayroll& bpr) {
// output BasePayroll-data using bpr
return os;
}

关于c++ - 您将如何取消引用 vector 迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58810816/

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