sách gpt4 ăn đã đi

c++ - vector

In lại 作者:太空狗 更新时间:2023-10-29 20:04:16 24 4
mua khóa gpt4 giày nike

我正在尝试创建一个类,它将从一组 vector 中绘制元素(并将这些 vector 作为容器保存在类中),但我觉得在管理具有许多功能的 vector 时,如 vectorOneAdd、vectorTwoAdd 使用为了向 vector 添加元素是没有意义的。一定有更好的方法,这就是为什么我在这里问,我听说你可以使用模板来做到这一点,但我不太确定如何。需要帮助。不想有很多无意义的代码。

下面是我的意思的例子:

class Cookie
{
std::vector chocolateContainer;
std::vector sugarContainer;

void chocolateVectorAdd(Chocolate element); // first function adding to one vector
void sugarVectorAdd(Sugar element); // second function adding to another vector
}

请使用示例代码,谢谢:)

câu trả lời hay nhất

having lots of functions like vectorOneAdd, vectorTwoAdd used in order to add elements to the vector is pointless. There must be a better way

有:

class Cookie {
std::vector chocolateContainer;
std::vector sugarContainer;

riêng tư:
mẫu
std::vector& get_vector(const T&); // not implemented but particularized

// write one of these for each vector:
template<>
std::vector& get_vector(const Chocolate&) { return chocolateVector; }
template<>
std::vector& get_vector(const Sugar&) { return sugarVector; }

công cộng:
mẫu
void add(T element) {
auto& v = get_vector(element);
v.push_back(std::move(element));
}
};

关于c++ - vector

24 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress