gpt4 book ai didi

c++ - 为什么不为 std::vector 重载 operator+=()?

转载 作者:IT老高 更新时间:2023-10-28 21:51:28 31 4
gpt4 key购买 nike

我已经开始学习 C++,所以由于缺乏知识/经验,我不知道为什么像我将要描述的那样对新手来说如此简单的东西现在还没有出现在 STL 中。要将 vector 添加到另一个 vector ,您必须输入:

v1.insert(v1.end(), v2.begin(), v2.end());

我想知道在现实世界中人们是否只是重载 += 运算符以使其不那么冗长,例如

template <typename T>
void operator+=(std::vector<T> &v1, const std::vector<T> &v2) {
v1.insert(v1.end(), v2.begin(), v2.end());
}

那么你就可以了

v1 += v2;

我还为 push_back 设置了这个设置,以“+=”将单个元素结束。精通 C++ 的人是否有某些理由不应该做或特别避免这些事情?

最佳答案

这实际上是我希望以 append() 重载的形式看到此功能的情况。 operator+= 有点模棱两可,你的意思是把每个 vector 的元素相互相加吗?或者你的意思是追加?

但是,就像我说的,我会欢迎:v1.append(v2); 清晰简单,我不知道为什么它不存在。

关于c++ - 为什么不为 std::vector 重载 operator+=()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366231/

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