- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我只是想知道,为什么有人会写这个:
std::iter_swap(i, k);
而不是这个?
std::swap(*i, *k); // saved a few keystrokes!
然后我研究了 iter_swap
的实现,当然它只使用 swap
而不是 std::swap
因为我们是无论如何,已经在 namespace std
中了。这就引出了下一个问题:
为什么会有人写这个:
using std::swap;
swap(a, b);
而不是这个?
std::iter_swap(&a, &b); // saved an entire line of code!
我在这里忽略了任何重要的差异/问题吗?
最佳答案
来自 SGI 文档 (here):
[1] Strictly speaking, iter_swap is redundant. It exists only for technical reasons: in some circumstances, some compilers have difficulty performing the type deduction required to interpret swap(*a, *b).
关于c++ - iter_swap 的意义何在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13991909/
如果我有一个容器 std::vector items ,我可以创建一个 IndirectIterator包装 std::vector::iterator并允许遍历 T的而不是 T*的。 我可以专攻it
我只是想知道,为什么有人会写这个: std::iter_swap(i, k); 而不是这个? std::swap(*i, *k); // saved a few keystrokes! 然后我研究
MSDN says : swap should be used in preference to iter_swap, which was included in the C++ Standard f
实现基本的冒泡排序以按名称对 Student 结构的 vector 进行排序。 #include #include void sortStudents(std::vector& students)
我有一个“简单”的问题:我正在尝试交换 map 中的对以更改顺序。此代码无法编译。 #include #include #include #include int main() { std
我将一个包含 20 个项目的 vector 传递给下面的函数。我的目标是更改 vector 中项目的顺序。如果列表包含项目 1 2 3 4,我希望最终结果为 4 3 2 1。基本上将第一项与最后一项切
我正在尝试概括一个函数,该函数用于将两个迭代器带入特定数据结构的 vector ,并使用 std::iter_swap 以特定方式重新排列元素(就像 std::sort 那样)。 由于这个函数实际上只
从 David Abrahams 和 Aleksey Gurtovoy 的书“C++ 模板元编程”中,我了解到 iter_swap (见下文)会比 std::swap 慢得多有时。虽然这本书有一些解释
查看std::iter_swap reference我的结论是: struct A {}; std::experimental::optional x{A{}}, y{A{}}; std::iter_
为什么/什么时候我们应该更喜欢 using std::swap; swap(a, b); over std::iter_swap(&a, &b)? 最佳答案 因为它们完全不同,所以你的问题是错误的二分
我很难理解为什么在下面的代码中直接调用 std::swap() 会导致编译错误,而使用 std::iter_swap 编译却没有任何错误. 来自 iter_swap() versus swap() -
我是一名优秀的程序员,十分优秀!