目录
1.回顾
2.名字空间(也称命名空间)
介绍
代码示例
3.注释
4.练习
B2003 输出第二个整数
方法1
方法2
1.回顾
在C1.【C++ Cont】准备中提到了名字空间(namespace)语句
using namespace std;
2.名字空间(也称命名空间)
介绍
1.处在在同一个空间内的,若有重名则会名字冲突,因此要对名字进行隔离,使用名字前要先交代名字空间
2.变量,函数和类都是大量存在的,这些变量,函数和类的名称如果都存在于全局作用域中,可能会导致很多冲突使用"名字空间"的目的是对标识符的名称进行隔离,以避免命名冲突或名字污染,因此引入namespace关键字
3.std(全称standard),即namespace std为标准名字空间,C++将标准库的定义(比如cout和cin)实现都放到这个命名空间中,因此使用标准库函数前要不仅要包含头文件(#include <iostream>)还要使用名字空间来表示名字空间std 中信息都是可见和可用的(using namespace std;)
代码示例
在不使用namespace std的情况下,使用"std::"来使用std下的cout和cin
#include <iostream>
int main()
{std::cout<<"Hello World!"<<std::endl;return 0;
}
和下方代码的执行效果是等同的
#include <iostream>
using namespace std;
int main()
{cout<<"Hello World!"<<endl;return 0;
}
在竞赛中,建议使用using namespace std;节省时间;在软件开发建议采用"std::"写法
3.注释
可参见9.【C语言】注释 点我跳转
Dev C++的注释和取消注释的快捷键:Ctrl + /
4.全局变量和局部变量
参见4.【C语言】初识常量与变量
在C++中,当全局变量和局部变量名字一样时,局部变量会优先使用,如果强制使用全局变量,可以在前面加上::
#include <iostream>
using namespace std;
int a=0;
int main()
{int a=1;cout<<a<<endl;cout<<::a;
}
在算法竞赛中,尽量多使用全局变量,默认会初始化为0,执行速度快;很多时候,会避免传参,因为全局变量到处都可以使用
在软件开发中,尽量使用局部变量,防止出现不可控因素
5.练习
https://www.luogu.com.cn/problem/B2003
练习1:B2003 输出第二个整数
题目描述
输入三个整数,整数之间由一个空格分隔。把第二个输入的整数输出。
输入格式
只有一行,共三个整数,整数之间由一个空格分隔。
输出格式
只有一行,一个整数,即输入的第二个整数。
输入输出样例
输入
123 456 789输出
456说明/提示
对于100%的数据,输入的整数在内。
两种解法
方法1
#include <iostream>
using namespace std;
int main()
{int tmp=0;int x=0;for (int i=0;i<3;i++){cin>>tmp;if (1==i)x=tmp;} cout<<x;return 0;
}
方法2
#include <iostream>
using namespace std;
int main()
{int n1,n2,n3;cin>>n1>>n2>>n3;cout<<n2;return 0;
}
用cin>>?>>?>>...>>?这样的写法可以一次性读取多个数据
用cout<<?<<?<<...<<?这样的写法可以一次性打印多个数据
本代码还有优化的空间,可以提高运行速度,优化方法是不读n3
int n1,n2;cin>>n1>>n2;cout<<n2;
练习2:B2005 字符三角形
题目描述
给定一个字符,用它构造一个底边长 55 个字符,高 33 个字符的等腰字符三角形。
输入格式
输入只有一行,包含一个字符。
输出格式
该字符构成的等腰三角形,底边长 55 个字符,高 33 个字符。
输入输出样例
输入 #1
*输出 #1
**** *****说明/提示
对于 100%100% 的数据,输入的字符是 ASCII 中的可见字符。
代码示例
#include <iostream>
using namespace std;
int main()
{char a;cin>>a;cout<<" "<<a<<" "<<endl;cout<<" "<<a<<a<<a<<" "<<endl;cout<<a<<a<<a<<a<<a;return 0;
}
重复输出a要采用此写法:"<<a<<a<<a<<"
本代码还有优化的空间,可以提高运行速度,优化方法是不输出末尾的空格
cout<<" "<<a<<endl;cout<<" "<<a<<a<<a<<endl;cout<<a<<a<<a<<a<<a;