微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么以及何时可以在 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 举报,一经查实,本站将立刻删除。