学习中遇到的c++问题,持续更新

原文请访问我的博客:http://xiaoshig.sinaapp.com/

向上取整

使用ceil函数。ceil(x)返回的是大于x的最小整数。如: 
ceil(2.5) = 3 
ceil(-2.5) = -2 
sort排序头文件

#include <algorithm> 

数组初始化总结


整型数组初始化://只能赋值0,赋其他值用memset(a,要赋的值,sizeof(a));

char a[3][4]={0};

字符数组初始化:
int b[3][4]={0};

布尔型数组初始化:
bool c[5]={0};

结构体初始化:
struct instruction{ //定义结构体,存储指令
int head; //识别指令
int d;
int n; //指令附加内容
}pro[1000]={0}; //存储程序体,相当于RAM

初始化之后都会变成0。
(char数组变为\000,int数组变为0,bool数组变为false,这个例子里的结构体所有元素的每一个成员值都为0)

sort()函数的使用


 

  sort()和qsort()一样,都是对数组的指定部分排序。qsort()只使用了快排,sort()使用了混合排序,相比之下,sort()更快一些。

  sort()函数常用的有两种形式,两个参数的形式,和三个参数的形式。

  1、两参数:sort(数组名,数组末地址);    //例如:sort(a+1,a+n+1);就是对a[1]...a[n+1]进行排序,默认是升序排序,如果想改变排序顺序,需要另写一个比较函数

  2、三参数:sort(数组名,数组末地址,比较函数);

  例如:

bool cmp(const int a,const int b)
{
    return a<b;
}
sort(a+1,a+10+1,cmp);

  就是对a[1]...a[n+1]进行从大到小排序。

string类库

示例链接

substr 方法 

 返回一个从指定位置开始的指定长度的子字符串。 stringvar.substr(start [开始的数, length ])  参数  stringvar  必选项。要提取子字符串的字符串文字或 String 对象。 start  必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。 length  可选项。在返回的子字符串中应包括的字符个数。 说明  如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。 

示例  下面的示例演示了substr 方法的用法。

<pre name="code" class="cpp">function SubstrDemo()

{     var s, ss;                //声明变量。   
  var s = "The rain in Spain falls mainly in the plain.";   
 ss = s.substr(12, 5);  //获取子字符串。   
  return(ss);              
 //返回 "Spain"。

 
查找字符串a是否包含子串b, 

不是用strA.find(strB) > 0而是strA.find(strB) != string:npos

algorithm 简单用法

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;


int student_Score[] = { 50,80,93,23,66};

void pritit(int nScore)
{
	cout<<nScore<<" ";
}
bool unPass(int nScore)
{
	return nScore < 60;
}
bool Pass(int nScore)
{
	return nScore >= 60;
}

int main(int argc, char* argv[])
{
	vector<int> v_score(student_Score,student_Score+sizeof(student_Score)/sizeof(int));
	vector<int>::iterator index;
	//排序
	sort(v_score.begin(),v_score.end()); 
	//显示
	for_each(v_score.begin(),v_score.end(),pritit); cout<<endl;
	//显示最小
	index = min_element(v_score.begin(),v_score.end());
	cout<<"最小分数 "<<*index<<endl;
	//显示最大
	index = max_element(v_score.begin(),v_score.end());
	cout<<"最大分数 "<<*index<<endl;
	//显示不低于60分的数量
	cout<<"低于60的数量 " <<count_if(v_score.begin(),v_score.end(),unPass)<<endl;
	//高于60的数量
	cout<<"高于60的数量 "<<count_if(v_score.begin(),v_score.end(),Pass)<<endl;
	//平均数
	int sum = 0;
	for (index = v_score.begin(); index != v_score.end(); index++)
	{
		sum += *index;
	}
	cout<<"平均数 "<<sum / v_score.size() <<endl;

	return 0;
}



评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值