linux下 学习c++的笔记 day1
###一.安装相关
首先得有安装包,都是.deb文件
其次命令如下:
sudo dbkg -i *.deb
###二.基础知识
####1.头文件相关
#include<iostream>
(1)相比于c,引用头文件可以不用写.h
(2)若要引用到c的东西,则需前边加c,例如 <cstdio.h>
、
####2.命名空间相关
using namespace std; //可以简化之后的代码,引用某个命名空间
暂时说这么多,详述见后文
####3.输入输出
(1)可以类比c,printf,scanf
输入为:cin 输出为:cout
cout<<"hello"<<endl<<endl //endl就是回车
运行结果: hello
....................
int a;
cin<<a;//代表输入一个整数a
###三.字符串相关
(1)创建字符串
#include<string>
string s1 = "222";// 1.=
string s2("222");//2.()
string s1(s2); // 3.直接把某个字符串名字放儿
(2)处理俩字符串之间的关系
string对象赋值可以用赋值符号,直接将值赋予给目标对象
c: strcpy(s2,s1) c++:s2 = s1;
strcat() s1+s2
strcmp() s1==s2 s1>s2 s1<s2
特殊情况,c风格创建
string s = "helllo";
int a = 100;
char buf[100];
sprintf(buf,"%s,%d",s,a.c_str());
count<<buf<<endl;
(3)求长度,判空,求字节
a. 求长度size(c中的strlen)
string s1 ="hello";
cout<<s1.size()<<endl;
结果:5
b. 判空 empty
//上面的是s1
cout<<s1.empty()<<endl;
值是一个bool类型:空返回true(1)
c. sizeof
cout<<sizeof(s1)<<endl;
结果:与s1内容无关,求的是string这个类型所占字节数,
所以是4
###四.引用
(1)基本用法
int a = 10;
int& b = a;
(2)做形参(省内存)
void fun(int& b)
{
cout<<b<<endl;
}
int main()
{
int a = 20;
fun(a);
}
(3)做返回值
调用函数传参,传谁返回谁,返回的是其本身
#include<iostream>
#include<string>
using namespace std;
int& swap(int&a)
{
cout<<a<<endl;
a=8;
return a;
}
int main()
{
int a = 10;
int &c = swap(a);
cout<<c<<endl;
}
结果:10 和 8
##########################################
补充一:
1.getline
string c ;
getline(cin,c);
不同点:
使用cin输入时 ,只能输入连续的字母,如helloworld,而getline,可以包括空格,如 hello world,它可以输出:hello 空格world,而cin只能输出空格之前的东西。getline是只针对字符串类型的,cin则比较通用,
二者相同点:
都是以回车为结束
2.namespqce
可以自定义命名空间:
#include<iostream>
#include<string>
using namespace std;
namespace my
{
string name = "xiaomin";
}
namespace you
{
string name = "xiaohong";
}
/*没有命名空间的同名变量,会被放入匿名空间
换句话说:匿名空间放同名的但是没有命名空间的变量
string name = "xiaolan";
int main()
{
cout<<my::name<<endl<<you::name<<endl<<::name<<endl;
/*不同命名空间用了同名变量,在使用时需指明命名
空间,::代表作用域,类似于使用结构体
调用成员的”.“
*/
}
结果:
xiaomin
xiaohong
xiaolan