gpt4 book ai didi

c++ - Variadic 函数声明 VS 接受列表的函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:52:22 27 4
gpt4 key购买 nike

在设计类或函数时,哪种方式(如下所示)更好,为什么?

class Container {

//Provide this functionality??
void addItemVariadic(const Value& val, ...);

//Or provide this functionality??
void addItemList(const list<Value>& vals);

};

提供像 addItemVariadic(..) 或 addItemList(..) 这样的函数更好吗?

还是提供一组这样的函数更好,比如进一步采用一些迭代器,还是限制功能更好,比如只采用列表?

最佳答案

使用可变函数是危险的

如果您传递了一个类型不正确的变量,它会在运行时调用函数时崩溃。

相反,如果您使用 std::list,它不会简单地编译,并且您可以避免崩溃。

顺便说一句:在这种情况下,我建议您使用 std::vector 而不是 std::list

编辑1 Possible Dupplicate Question. 一个很好的解决方案,使用运算符 << 一次性输入所有参数。

Edit2 为了在不同的 std::container 之间进行选择,有一个选择图作为 this question 的答案。 .此图针对 C++03,不包括 C++1 中引入的新容器。

关于c++ - Variadic 函数声明 VS 接受列表的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14398992/

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