相关疑难解决方法(0)

std :: swap对整数类型的速度有多快?

STL实现了一个通用std::swap函数来交换2个值.它可以通过以下方式呈现:

template <class T> void swap (T& a, T& b)
{
  T c(std::move(a));
  a=std::move(b);
  b=std::move(c);
}
Run Code Online (Sandbox Code Playgroud)

但是,有一个XOR交换算法来交换2个整数(http://en.wikipedia.org/wiki/XOR_swap_algorithm):

void swap_u( size_t& x, size_t& y )
{
   x = x^y;
   y = x^y;
   x = x^y;
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 现在是优化(开启x86还是arm)?
  2. C++标准是否支持这种优化?
  3. 是否有任何真正的STL实现在野外具有std::swap整数专业化?

c++ performance swap stl c++11

20
推荐指数
2
解决办法
3100
查看次数

标签 统计

c++ ×1

c++11 ×1

performance ×1

stl ×1

swap ×1