c++ - 为什么 valarray 没有像 C++03 中的 vector 那样的交换函数?

标签 c++

<分区>

如标题,我对此感到困惑。如果我们面临迭代问题,swap 应该非常有用。可以通过交换指向内存的指针而不是内容来交换旧 vector 和新 vector 。但是,这在 std::vector 中有效,但在 std::valarray 中无效。我想知道为什么。 C++0x好像加了这个函数,为什么C++03没有?

最佳答案

因为它没有。

我怀疑还有比这更好的答案。遗漏和错误发生(另见 std::vector::resize 按值获取它的第二个参数,缺少的 std::copy_if 算法,和 the very long list of closed Standard Library defects )。

语言不断发展是件好事,这样的错误可以在语言规范的 future 修订版(如 C++0x)中得到纠正。

关于c++ - 为什么 valarray 没有像 C++03 中的 vector 那样的交换函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6885867/

相关文章:

C++ ODBC 检查连接是否成功

c++ - 是否有一个智能指针可以使用复制构造函数和赋值运算符复制对象?

c++ - 在不使用文字的情况下检测负数的更好方法是什么?

c++ - 将二进制数写入文件时出现意外结果 [C++]

c++ - 我想在 QT 中使用 LEMUR 库

c++ - 如何检查QImage是否有效?

java - 在单个 Java 程序中同时调用 C 和 C++

c++ - c++中模板的部分特化

C++17 推断基于 lambda 的访问者的返回类型

c++ - C++ 中的 class a() 和 class a = class() 有什么区别?