gpt4 book ai didi

c++ - 封装 vector

转载 作者:行者123 更新时间:2023-11-30 04:31:15 29 4
gpt4 key购买 nike

这是我类(class)的一个小样本:

#include <string>
#include <vector>

using std::string;
using std::vector;

struct Book {
string m_author;
string m_title;
};

class BookList
{
public:
BookList();
~BookList();

private:
vector<Book*> m_books;
}

如您所见,BookList 的数据以 Bookvector 形式存储。编写访问器的最佳方式是什么?我应该允许用户通过 HasMore()GetNextBook() 方法一个一个地检索它们,还是只返回整个 vector 会更好?或者也许是一个迭代器?

提前致谢。

最佳答案

首先,您可能不需要存储指针。请改用一个值。在这里,您有以下三种选择之一:

  1. 按值或按引用返回一个 vector 。
  2. 公开开始/结束迭代器。
  3. 只需将 vector 公开,或者完全摆脱 BookList,而只使用 std::vector<Book>直接。

GetNextBook方法很糟糕,因为它无缘无故地使您的列表存储迭代状态。而且还使您成为唯一这样做的人。

关于c++ - 封装 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303569/

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