【C++】std::是什么?
引例:
#include<iostream>
int main()
{
std::cout<<"我喜欢C++";//输出一句话
std::cout<<std::endl;//换行
return ;
}
1.std是什么?
std:: 是个名称空间标示符,C++标准库中的函数或者对象都是在命名空间std中定义的,所以我们要使用标准函数库中的函数或对象都要使用std来限定。
对象count是标准函数库所提供的对象,而标准库在名字空间中被指定为std,所以在使用cout的时候要加上std::。这样编译器就会明白我们调用的cout是名字空间std中的cout。
2.为什么将cout放到名字空间std中?
是因为像cout这样的对象在实际操作中或许会有好几个,比如说你自己也可能会不小心定义了一个对象叫cout,那么这两个cout对象就会产生冲突。
3.std都是什么时候使用?
一般来说,std都是要调用C++标准库时,要写上std;
使用非标准库文件iostream.h,不用写。
比如上面引例这样改写就不需要std:
#include<iostream.h>
int main()
{
cout<<"我喜欢C++";//输出一句话
cout<<endl;//换行
return ;
}
当然还有一种方法:
在main函数的上面使用了两行语句:
using std::cout;
using std::endl;
那么cout和endl前面就不需要std::
比如这样改写引例:
#include<iostream>
using std::cout;
using std::endl;
int main()
{
cout<<"我喜欢C++";//输出一句话
cout<<endl;//换行
return ;
}
其实还有种更简便的方法,就是直接使用using namespace std来代替using std::cout和using std::endl。
using namespace std 告诉编辑器我们将要使用空间std中的函数或者对象。
所以cout和endl前面不用注明它们是std这个名字空间中的cout和endl。
#include<iostream>
using namespace std;
int main()
{
cout<<"我喜欢C++";//输出一句话
cout<<endl;//换行
return ;
}
参考资料:星云博客园
【C++】std::是什么?的更多相关文章
- 【NX二次开发】NX内部函数,libuifw.dll文件中的内部函数
		
本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: void U ...
 - C++ std::set
		
std::set template < class T, // set::key_type/value_type class Compare = less<T>, // set::k ...
 - C++ std::priority_queue
		
std::priority_queue template <class T, class Container = vector<T>, class Compare = less< ...
 - C++ std::queue
		
std::queue template <class T, class Container = deque<T> > class queue; FIFO queue queue ...
 - C++ std::multimap
		
std::multimap template < class Key, // multimap::key_type class T, // multimap::mapped_type class ...
 - C++ std::map
		
std::map template < class Key, // map::key_type class T, // map::mapped_type class Compare = less ...
 - C++ std::list
		
std::list template < class T, class Alloc = allocator > class list; List Lists are sequence co ...
 - C++ std::forward_list
		
std::forward_list template < class T, class Alloc = allocator > class forward_list; Forward li ...
 - C++ std::deque
		
std::deque template < class T, class Alloc = allocator > class deque; Double ended queue deque ...
 - C++ std::array
		
std::array template < class T, size_t N > class array; Code Example #include <iostream> ...
 
随机推荐
- Docker容器服务发现方案
			
一. 目的 在服务在容器中部署时,外部调用服务需要知道服务接口ip及端口号,这样导致部署时需要配置,从而增加部署的困难.本文档主要介绍如何使用ningx反向代理和consul进行自动化服务发 ...
 - 洗礼灵魂,修炼python(59)--爬虫篇—httplib模块
			
httplib 1.简介 同样的,httplib默认存在于python2,python3不存在: httplib是python中http协议的客户端实现,可以用来与 HTTP 服务器进行交互,支持HT ...
 - BOM 清除
			
[root@test3 11]# gcc 11.2.c11.2.c:1: 错误:程序中有游离的 ‘\357’ 8进制,相当于16进制 ef11.2.c:1: 错误:程序中有游离的 ‘\273’11.2 ...
 - Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)【转】
			
Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息.它定义在include/linux/sched.h文件中. 谈到task_str ...
 - 高通非adsp 架构下的sensor的bug调试
			
高通 sensor 从native到HAL 高通HAL层之Sensor HAL 高通HAL层之bmp18x.cpp 问题现象: 当休眠后,再次打开preesure sensor的时候,会出现隔一段时候 ...
 - IP Core 分类
			
IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经过反复验证过的.具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中.到了SOC阶段,IP核 ...
 - January 31st, 2018 Week 05th Wednesday
			
Real love is not just instinct, but intent. 真正的爱不是身体上的一见钟情,而是要用心去经营. What is real love? Honestly, I ...
 - 【js】 ==与===区别
			
1.对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 2)同类型比较,直接进 ...
 - ROS教程2 编写简单的消息发布器和订阅器 (C++ catkin)
			
创建工作环境 创建文件夹,创建包 mkdir -p ~/catkin_arduino_ros/src catkin_create_pkg test1_pub_sub std_msgs rospy ro ...
 - solidity-library
			
library 1)直接使用使用库合约的合约,可以将库合约视为隐式的父合约(base contracts),当然它们不会显式的出现在继承关系中.意思就是不用写is来继承,直接可以在合约中使用: lib ...