c++ - 为什么以及何时我们可以在 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, {1, 2, 3, 4, 5});
std::copy(std::cbegin(v), std::cend(v) - 1, std::ostream_iterator<int>(std::cout, ", "));
std::cout << *std::rbegin(v) << "\n\n";
return 0;
}
可以成功编译(在 C++14 和 C++17 中)并完成相同的工作。但我想知道为什么我可以省略std::
以及在什么情况下?
解决方案
推荐阅读
- javascript - Javascript 相同输出(全加)简单计算
- mongodb - Kakfa-MongoDB 源连接器流中缺少恢复令牌
- python-3.x - 如何使用 xlswritter 对单个工作表中的多个数据框使用自动过滤器
- elasticsearch - 一个 ES 实例的快照并在不同的 ES 实例上恢复
- solr - 使用带有 TYPO3 的 solr 主从配置?
- json - 如何在不改变颤动键的情况下将具有不同值的新地图写入 json 文件?
- javascript - 解析 JSON 字符串化变量返回值未定义?
- c++ - std::bitset<64> 是否适用于 uint64_t 的 32 位机器?
- ios - iPhone 6 模拟器上的 Web Inspector 未显示“元素”选项卡
- reactjs - React-typescript-Redux-toolkit:无法获取嵌套 api