gpt4 book ai didi

c++ - 为什么这个函数头不是最优的

转载 作者:行者123 更新时间:2023-11-30 02:34:50 26 4
gpt4 key购买 nike

项目背景介绍。
Class Book -> 包含书籍信息
BooksDB 类 -> 可以添加/删除/搜索书籍的书籍数据库....

现在我有以下函数头,它打印放置在 BooksDB 书籍 vector 中的书籍。

void printBookDetails(const std::vector<Book*>& books)

此函数接收书籍指针 vector 作为常量引用,将其复制到相同类型的新 vector 中。根据书籍唯一的 ISBN 对新 vector 进行排序并打印它们。

我现在被问到为什么上面的函数头在接收参数的方式上不是最优的,应该如何重写它以及为什么选择这个函数头。

我很想得到一个建议,因为我已经阅读了关于将对象传递给函数的所有内容,但无法解决这个问题。

最佳答案

printBookDetails 中,如果您要复制 vector ,则只需将其更改为

void printBookDetails(std::vector<Book*> books)

然后让拷贝为您生成。这使您无需在函数中执行此操作。

另一个好处是,如果将 r 值传递给函数,移动语义应该启动,这甚至可以节省您复制 vector 的成本。

关于c++ - 为什么这个函数头不是最优的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34275264/

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