C++一些小知识点

1.cout.precision(n);保留n位有效位数,并且有自动舍弃多余的0的功能,
在 iostream中
2.cout.setf(ios::fixed); 十进制显示,而不用科学计数法,不过会把没用的0全
显示出来,很多余的一个功能
3. cout <<setprecision(3) <<x <<endl;显示3位小数不过使用的时候要注意需要包含头文件#include<iomanip>才能使用
4. atof()函数,将字符串转换成double类型,相应的有将字符串转换成int型的atoi函数
程序

#include <iostream>
#include<stdlib.h>
#include<string>
using namespace std;
int main()
{
	string s("1234");
	cout<<"s= "<<s<<endl;
	float a;
	a=atof(s.c_str());
	cout<<"a= "<<a<<endl;
}

类定义完要加分号
类定义完要加分号
类定义完要加分号
编译检查不出来的

6.使用stringstream拼接字符串和数字
要注意的地方有
第一.使用ss>>s3;的时候遇到空格就停止了,也就是ss把它接收到的数据从开始到第一个空格输出给s3;
第二.ss.clear();并不能清空以前的输入,有效的办法是ss.str(" ");
第三.能把包括空格在内所有ss收到的数据输出给string的方法是s3=ss.str();
示例程序如下

#include<string>
#include<sstream>
using namespace std;
int main()
{
	int index=1;
	string s1="We_love";
	string s2=" game!";
	stringstream ss;
	ss<<s1<<index<<s2;
	string s3;
	ss>>s3;
	cout<<"s3 = "<<s3<<endl;

	cout<<"next"<<endl;
	
	ss.str(" ");
	index=2;
	ss<<s1<<index<<s2;
	s3=ss.str();
	cout<<"s3 = "<<s3<<endl;
}

程序结果为s3 = We_love1 next s3 = We_love2 game!
另一种实现类似功能的方法

#include<string>
int i=100;
string s="/rgb/"+to_string(i)+" ,png ";

7.c++中一种记时方法

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

int main()
{
	cout<<"开始记时"<<endl;
	chrono::steady_clock::time_point t_start = chrono::steady_clock::now();
	for(double i=0;i<10000;i++)
		for(double j=0;j<10000;j++);
	chrono::steady_clock::time_point t_end = chrono::steady_clock::now();
	chrono::duration<double> time_used = chrono::duration_cast<chrono::duration<double>>(t_end-t_start);
	cout<<"共用时 : "<<time_used.count()<<" seconds ."<<endl;
	
}

不过如果直接使用g++编译,会提示大致意思为需要支持c++11的error,此处使用cmake解决

PROJECT(main)#设置工程名
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)#设定版本

list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )

SET(CMAKE_CXX_COMPLILER "g++")#设定编译器
SET( CMAKE_BUILD_TYPE Release  )
SET( CMAKE_CXX_FLAGS "-std=c++11 -O3")

add_executable(main main.cpp)

8.取整
floor(10.5)=10;ceil(10.5)=11;
floor(-10.5)=-11;ceil(-10.5)=10;
floor 是向下取整,ceil是向上取整
round(x)返回x的四舍五入整数值。

猜你喜欢

转载自blog.csdn.net/qq_34122731/article/details/86634019