我重构了一些从文件中读取整数容器的代码。我已将公共代码移动到这些流提取器中:
std::istream &operator>>(std::istream &in, std::vector<int> &list);
std::istream &operator>>(std::istream &in, std::map<int, std::vector<int>> &graph);
我的问题是这些函数是否应该在写入之前清除容器,或者只是向它们插入/附加数据。 (在我的特殊情况下,它并不重要,但为了代码重用,我想知道。)
在这些情况下,C ++中是否存在约定?我试图根据最低惊喜原则进行编码。
答案 0 :(得分:6)
标准库提供的提取运算符全部替换目标变量的内容。
包括std::string
,这是一个容器类型,就像您的示例一样。