大二下开学,蓝桥杯,然后呢,第一次接触竞赛题,发现如此之难,看解题思路视频,发现看得懂思维跟上了,发现数据结构是个很重要的东西,但是学的是用C,而讲解用的都是C++,还发现C++有很多好用的内置函数,虽然学过C++,发现很多细节东西都不懂,所以重新学习了一下。
陌生的细节,记下:
1、C++中不能用void main
,但是可以用int main (void)
。
2、为什么需要使用using namespace std;
因为在C++中 #include<iostream>
没有扩展名,而cin/cont/endl
等在std中,实际上为std::cin/std::cout//std::endl
而为保证方便直接使用cin/cout/endl
所以在main
函数前加上using namespace std
,即使用std
名称空间,若只用cin
,还可以在main函数前加上using std::cin。
3、可以这样去初始化变量,int a(432)。
4、unsigned short
范围是0~65535,然而short
范围是-32768~32767。
5、cout<<hex
以十六进制输出,cout<<dec
以十进制输出,cout<<oct
以八进制输出。
6、\a
表示振铃字符“坑爹找了半天没找到像铃铛的字符 结果是会响……”,\b
向后退一格(back),\t
(tab),\r
(回车)……
7、coust
限定符:
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
const int code = 10;
code = 20;//一定出错 因为code已经被定义为常量无法更改“error: assignment of read-only variable 'code'
cout << code << endl;
return 0;
}
8、d.dddE+n
指的是将小数点向右移n位,而d.dddE-n
指的是将小数点向左移n位。之所以被称为浮点数是因为小数点可移动。
9、cin.getline(name,20);
第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数,若为20,则最多只能读取19个字符,余下的用来存储“\0
”,若没有第二个参数,则当用户输入“Enter”生成的换行符的时候,换行符被替换为空字符。但是基本上使用get();
。
10、
cin.get(str1,20);
cin.get();
or
cin.get(str2,20).get();
多一个get()
是为了读取掉换行符!
11、string 类!!!
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char const *argv[])
{
string str3;
string str1 = "this's";
string str2 = " an apple";
str3 = str1 + str2;
cout << str3 << endl;
str3 += str2;
cout << str3 << endl;
return 0;
}
可见 string类 可以相互赋值,可以拼接,还可以附加(+=)。