gpt4 book ai didi

c++ - 从指针 vector 中获取一个元素

转载 作者:太空狗 更新时间:2023-10-29 20:33:45 33 4
gpt4 key购买 nike

我有指针 vector :std::vector<Customer*> customersList现在我想获得其中一个元素并对他进行操作。我不确定我是怎么知道的,我的猜测是:

Customer* source = restaurant.getCustomer(cust);

问题是我不知道在 C++ 中它是否会创建新对象或者我只会得到对他的引用。有我的 getter 方法:

Customer* Table::getCustomer(int id) {
for (int i = 0; i < customersList.size(); ++i) {
if (customersList[i]->getId() == id)
return customersList[i];
}
return nullptr;
}

谢谢

最佳答案

成员函数将返回指针的拷贝,即Customer。不复制对象本身,只复制对它的引用。修改返回的 Customer*将导致指针对象(底层对象)的修改。

请注意,您还想使用 <algorithm> header ,特别是 std::find_if .

const auto  customer = std::find_if(customerList.begin(), customerList.end(),
[id](const Customer* c){ return c->getId() == id; });

return customer == customerList.cend() ? nullptr : *customer;

关于c++ - 从指针 vector 中获取一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53259407/

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