目录
EX0301 //整数的二进制位码和F数的位码求法不一样,F数要先转换,把F数的地址转为int型的地址
EX0302// sizeof 返回字节数 vector.size()返回装的数 vector.capacity()返回总的大小数
EX0303 // 遍历器遍历和普通遍历vector vector的赋值 计算均方差的快速方法 整型变量的优化
EX0304 //cin遇到enter space tab 终止,getline+istringstream适合一行未知的
EX0305 // 这个完全不知道怎么写,string可以类似数组一样使用
EX0306 遍历数组的五种方法 指针可以写成数组,数组也可理解为指针,str也可以为数组
EX0301 //整数的二进制位码和F数的位码求法不一样,F数要先转换,把F数的地址转为int型的地址
#include<iostream>
using namespace std;
int main()
{
float f=-1234567.0f;
int* pa =(int*)&f;
for(int i=31;i>=0;i--)
{
cout<<(*pa>>i&1)<<(i==31||i==23 ? "-":"");
}
cout<<endl;
for(int i=31;i>=0;i--)
{
cout<<(*pa>>i&1)<<(i==31||i==23 ? "-":"");
}
system("pause");
}
EX0302// sizeof 返回字节数 vector.size()返回装的数 vector.capacity()返回总的大小数
#include<iostream>
using namespace std;
int main()
{
int a;
long int b;
char c;
float d;
int x;
cout<<"int :"<<sizeof(a)<<" byte"<<sizeof(a)*8<<" bits"<<endl;//对sizeof有正确的认识,其返回值是什么~开始时企图通过指针进行求解,暂无法得到
cout<<"int :"<<&b<<"byte"<<&a<<"bits"<<endl;
cout<<"int :"<<&c<<"byte"<<&a<<"bits"<<endl;
cout<<"int :"<<&d<<"byte"<<&a<<"bits"<<endl;
system("pause");
}
EX0303 // 遍历器遍历和普通遍历vector vector的赋值 计算均方差的快速方法 整型变量的优化
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
int main()
{
const int vector_size=10;
int arr1[]={6,3,7,2,9,1,4,8,11,5};
vector<int> arr2(arr1,arr1+vector_size); //1.这一步的赋值,注意是(a.b) 共计b-a个数 2.用数组和用向量给向量赋值不同,数组是没有 arr1.begin() 这种东西的
float aim_num,ave,temp=0;
vector<int>::iterator it; //遍历器的初次使用
for(it = arr2.begin();it!=arr2.end();it++) //遍历器实现遍历,中断条件为什么是这样我不懂,就像上一个红字一样
temp=temp+(*it);
cout<<"和为 "<<temp<<endl; // 取到累积和
ave=temp /vector_size;
temp=0;
for(it=arr2.begin();it!=arr2.end();++it)
temp=temp+pow(((*it)-ave),2); ; //取到累计平方和
aim_num=pow(temp/vector_size,0.5); //这里 的pow如果幂写成1/2,取得是0次,故结果为1
cout<<aim_num<<endl;
system("pause");
}
EX0304 //cin遇到enter space tab 终止,getline+istringstream适合一行未知的
/*=========================================
EX0304
=============================================*/
#include<iostream>
#include<string>
#include<fstream>
#include<algorithm>
using namespace std;
int main()
{
int num_25=0;
ifstream tin("abc.txt");
string str;
while(getline(tin,str))
{
if(str.find(". 25")!=-1)
{
num_25+=1;if(str.find('*')!=-1) num_25+=1;
}
}
cout<<"day is "<<num_25<<endl;
system("pause");
}//使用了文件的输入输出流以及sring的函数,输入输出及getline的使用不熟练 abc。txt文件的存储位置放错耽误了很多时间
EX0305 // 这个完全不知道怎么写,string可以类似数组一样使用
/*============================================
EX0305 加密哈哈哈哈 interesting
================================================*/
#include<iostream>
#include<string>
using namespace std;
const char key[]="4962873";
string encode(string str)
{
string result(str);
for(int i=0;i<str.length();i++)
{
result[i]=result[i]+(key[i%7]);
if (result[i]>'z') result[i]-=91;
}
return result;
}
int main()
{char ch;
string str,temp;
const int max_size=100;
cout<<"输入:"<<endl;
getline(cin,str);
temp=encode(str);
cout<<temp<<endl;
system("pause"); // 1.string型可以像数组一样操作 2.encode函数七位编码的变换
}
EX0306 遍历数组的五种方法 指针可以写成数组,数组也可理解为指针,str也可以为数组
/*===============================================
EX0306
=========================================*/
#include<iostream>
using namespace std;
int main()
{
int sum[5]={0};
int iArray[]={1,4,2,7,13,32,21,48,16,30};
int size =sizeof(iArray)/sizeof(*iArray);
int *iPtr=iArray;
for(int n=0;n<size;++n)
sum[3]+=iPtr[n]; //累加和
for(int n=0;n<size;++n)
sum[2]+=*(iPtr+n); //累加和
for(int n=0;n<size;++n)
sum[1]+=*iPtr++; //累加和
for(int n=0;n<size;++n)
sum[0]+=iArray[n]; //累加和
for(int n=0;n<size;++n)
sum[4]+=*(iArray+n); //
for(int i=0;i<5;++i)
cout<<sum[i]<<endl;
system("pause");
}
EX0307 指针和引用的区别
#include<iostream>
using namespace std;
void MYswap(int *a,int *b);
int main()
{
int a=16,b=48;
cout<<"a: "<<a<<",b: "<<b<<endl;
MYswap(&a,&b);
cout<<"after being swapped : \n";
cout<<"a: "<<a<<",b: "<<b<<endl;
}
void MYswap(int *a,int *b)
{
int temp=*a;
*a=*b;*b=temp;
}