为什么以及何时可以在 C++ 中省略 std 关键字?

问题描述

这两个代码

#include <algorithm>
#include <iostream>
#include <iterator>
#include <utility>
#include <vector>

int main() {
  std::vector<int> v;

  std::exchange(v,{1,2,3,4,5});

  copy(cbegin(v),cend(v) - 1,std::ostream_iterator<int>(std::cout,","));
  std::cout << *rbegin(v) << "\n\n";

  return 0;
}

和这段代码

#include <algorithm>
#include <iostream>
#include <iterator>
#include <utility>
#include <vector>

int main() {
  std::vector<int> v;

  std::exchange(v,5});

  std::copy(std::cbegin(v),std::cend(v) - 1,"));
  std::cout << *std::rbegin(v) << "\n\n";

  return 0;
}

可以成功编译(在 C++14 和 C++17 中)并执行相同的工作。但是我想知道为什么我可以省略std::以及在什么情况下?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)