C++笔记

偶尔看别人代码突然发现C++11里标准库文件居然有string类型转数值类型的标准库函数,谁说只有python可以的? 再也不用自己写转换了 舒服啊
另外读取的时候甚至可以直接把东西都用字符串读取下来,然后配合标准库里提供的

find_first_of(target,start)
substr(start,size)

就可以实现任意的读取了
常用的转换函数有
stoi,stod等
转换的标准库函数在这里
https://blog.csdn.net/k346k346/article/details/50927002

既然写了就一下写完方便找

字符串转数值类型

1.上面的stoi,stod函数

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string a = "100";
	int aa;
	aa = stoi(a);
	cout<<aa+1<<endl;
	string b = "100.111";
	float bb;
	bb = stod(b);
	cout<<bb+1<<endl;
	return 0;
}

2.用sstream流对象,感觉有点像ros… 在两种不用的类型之间传输,通过流作为桥梁
这个用到 <sstream > 标准库,这里注意一个流对象用完之后要用clear清除之后才能继续用,不然会出错。

#include <iostream>
#include <sstream>
using namespace std;
int main()
{
	string a = "100";
	int aa;
	stringstream ss;
	ss<<a;
	ss>>aa;
	cout<<aa+1<<endl;
	ss.clear();
	string b = "100.111";
	float bb;
	ss<<b;
	ss>>bb;
	cout<<bb+1<<endl;
	return 0;
}	

3.用标准库函数 sscanf() 要注意那里是传引用不是传值,而且这里是char[]类型,而不是string,string还是用上面两个

#include <iostream>
using namespace std;

int main()
{
	char str[] = "1234";
	int a;
	sscanf(str,"%d",&a);
	cout<<a+1<<endl;
	return 0;
}

如果是char * 类型,用法差不多但是定义的时候要加上const,因为不能把一个非常量指针指向一个非常量。

数值类型转字符串

1.还是使用流对象实现,方法跟上面一样
2.用sprintf()函数

#include<iostream>
using namespace std;
int main()
{
	int a = 1234;
	char str[10];
	sprintf(str,"%d",a);
	cout<<str<<endl;
}

char * 和char[] string 互转

这块理解的不是很清楚,看看大佬的总结吧
https://www.cnblogs.com/Pillar/p/4206452.html

对象的定义

不同定义方法结果不同

i)类名 对象名

默认调用“对象名()”这个默认构造函数,在栈内存中存在对象名,在堆内存中存在实际对象;
如果类中没有声明构造函数,那么就会使用编译器自动产生的“合成的默认构造函数”,如果有其他构造函数(例如有参数的),编译器不会自动生成,这里会报错。“合成的默认构造函数”会以初始值、和默认初始值来定义数据成员。

ii)类名 对象名(一个或以上个参数)

默认调用相应的构造函数,在栈内存中存在对象名,在堆内存中也是存在实际对象的;

iii)类名 对象名()

实际是声明了一个返回类型为类的函数。。。而不是对象名,所以其实这里是函数名

C++风格强制转换

static_cast< double > (要转换的变量) ,在C风格中是(* double)

double time0 = static_cast<double> (getTickCount())

C++ 产生各种随机数

产生随机数
rand()%(b-a+1)+a 表示产生一个从a到b的随机数

定义随机数生成器
RNG& rng = theRNG()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值