linux下 学习c++ 的笔记 day1

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值