gpt4 book ai didi

c++ - 我应该将我的 Vector<> 声明为 Vector<>* 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 01:52:00 24 4
gpt4 key购买 nike

假设我正在用 STL 编写一个 C++ 员工管理系统

我有一个名为 StaffMember 的实体类:

class StaffMember
{
//
}

和一个名为 Staff 的存储库:

class Staff
{
private:
std::vector<StaffMember> staffMembers;
}

我怎么知道我是否应该申报 staffMembers作为 std::vector<StaffMember>std::vector<StaffMember>*

作为指针,我需要在 ~Staff() 中删除它,否则我不会。

两者都可以,但问题是,我应该选择哪一个,当将来出现这个问题时,是否有我可以使用的通用规则?

最佳答案

通常按值 ( std::vector<StaffMember> ),除非您需要共享它。即使您确实需要共享它,智能指针也比原始指针好得多。

编译防火墙是一个异常(exception)(例如 PIMPL)。

关于c++ - 我应该将我的 Vector<> 声明为 Vector<>* 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13283250/

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