1 class 的定义,一般来说分为两部分,其中一个是所谓的头文件,用来声明class 所提供的各种操作行为
另一个是文件,程序代码文件,用来包含这些行为的实现内容。预使用class 不许在程序中含入其头文件
2 using namespace std
3 template class 机制使程序员直到使用template class 时才决定真正的数据类别。先使用一个代名,
稍后才绑定至实际的数据类别
4 Arrays 要定义array 我们必须指定array 的元素类型,名称,并指定其尺度的大小
array 的尺度必须是个常量表达式
const int seq_size=18;
int pell_seql seq_size=1;
5 vector 必须首先含如vector 的头文件。在角括号中指定其元素类型,其尺度则写作小括号内,不一定
是常量表达式
#include<vector>
vector<int> pell_seq(seq_size);
6 初始化数组和vector
1 初始化数组
int elem_seq[seq_size]={1,2,3,4} ;
int elem_swq[]={1,2,3,4};由编译其根据初始值自动算出array 的值
2 初始化vector
1) vector<int> elem_seq(seq_size);
elem_seq[0]=1;
elem_seq[1]=2;
.....
elem_seq[[17]==22;
2) 利用一个以初始化的array
int elem_val[seq_size]={1,2,3,4}
vector<int>elem_seq(elem_val,elem_val+seq_size); 其中elem_val 为内存地址
7 array 和 vector 的使用
vector 知道自己的大小,而array 不知道
for(int i=0;i<elem_seq.size();i++){
cout<<elem_seq[[i]<<'';
}
8指针 指针为程序引入了一层间接性,我们可以操作指针(代表某特定内存地址),而不再直接操控对象。
指针主要形成两件事,可以增加程序本身的弹性,但同时也增加了直接操控对象时所没有的复杂度
1 int ival=1024
int *p=&ival; 其中*p 指int型对象的地址
2 指针所具有的双重性,既可以让我们操控指针内含的内存地址,也可以让我们操作指针所指定的对象值
pi 指定pi所含有的内存地址
*pi 核定ival的值
3 指针的提领(dereference)
如果pi 寻址到某个对象,则执行提领操作,如果pi 不指定任何对象,提领会导致未知的执行结果
一个为只想任何对象的指针,其内含地址为0,我们称为null,任何指针都可以被初始话,或是令值为0
if(pi&&...)
只有pi含一个非0值时,其结果为true
vector<int> *pv=0;
const int seq_cnt=6;
vector<int> *seq_addres[seq_cnt]={
&fibonacci,&lucas,&pell...
};
一个指针数组,容量为seq_cnt,每个指针都指向vector<int>
4 #include<cstdlib>
rand(seed) 返回一个介于0和seed 之间的随机数
5 对象指针
if(!fibonacci.empty()&&....){
pv.empty()..
}
9 文件写
对文件的读写,首先的含入fstream
#include<fstream>
1 ofstream outfile("seq_data.txt"); 如果文件不存在,产生一个文件,如果文件已经存在,这个文件
被开启作为输出只用,但是源文件中的数据会输调
2 ofstream outfile("seq_data.txt",ios_base::app) 追加模式
3 oufile 为false 表示文件未开启成功
10 文件读
ifstream 将文件名传人,如果文件未能开启成功,ifstream 对象被核定为false ,如果成功,为true
ifstream infile("seq_data.txt");
int num_tries=0;
int num_cor=0;
if(!infile){
//由于某种原因,文件无法开启
}
else
{
string name;
int nt;
int nc;
while(infile>>name)
{
// 一旦读到到文件尾,infile 尾false
// infile>>name>>nt>>nc ,把文件 anna 24 19 分别读到name,nt,nc 中
infile>>nt>>nc;
if(name==usr_name)
{
//find hime
count<<"Welcome back,"<<usr_name
<<"\nYour current score is" <<nc
<<" out of " <<nt<<"\nGood Luck"!\n";
num_tries=nt;
num_cor=nc;
}
}
11 同时读写同一个文件
fstream iofile("seq_data.txt",ios_base::in|ios_base::app);
if(!iofile)
...
else
{
iofile.seekg(0); 将文件重新定位的文件的最末端
}
12
#include<iostream>
#include<string>
using namespace std;
//---------------------------------------------------------------------------
#pragma argsused
int main()
{
string username;
cout<<"Please enter your name:";
cin>>username;
switch(username.size()){
case 0:
cout<<"with no name";
break;
case 1:
cout<<"with one character";
break;
default:
cout<<"hollo ,"<<username<<endl;
break;
}
return 0;
}
13
#include<iostream>
#include<vector>
#include<string>
using namespace std;
//---------------------------------------------------------------------------
int main()
{
vector<int> ivec;
string str;
int val;
while(cin>>val){
ivec.push_back(val);
}
int sum=0;
for(int i=0;i<ivec.size();i++){
sum+=ivec[i];
}
int average=sum/ivec.size();
cout<<"sum of "<<ivec.size()
<<"elements "<<sum
<<"average "<<average<<endl;
return 0;
}
14
//---------------------------------------------------------------------------
#include<iostream>
#include<vector>
#include<string>
using namespace std;
//---------------------------------------------------------------------------
int main()
{
const int array_size=120;
int la[array_size];
int ival,icnt=0;
while(cin>>ival&&icnt<array_size){
la[icnt++]=ival;
}
int sum=0;
for(int i=0;i<array_size;i++){
sum+=la[i];
}
int average=sum/array_size;
cout<<array_size
<<"\n"<<sum
<<"\n"<<average<<endl;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include<iostream>
#include<vector>
#include<string>
#include<fstream>
#include<algorithm>
using namespace std;
//---------------------------------------------------------------------------
int main()
{
ifstream in_file ("D:\inputfile.txt");
ofstream out_file("D:\outputfile.txt");
if(!in_file){
cerr<<"unable to open the inputfile" ;
}
if(! out_file){
cerr<<"unable to open the outputfile" ;
}
string word;
vector<string> text;
while(in_file>>word)
{
text.push_back(word);
}
cout<<"unsort file";
for(int i=0;i<text.size();++i)
{
cout<<text[i]<<" "<<endl;
}
cout<<"sort file";
sort(text.begin(),text.end());// sort the vector
for(int i=0;i<text.size();++i)
{
out_file<<text[i]<<" "<<endl;
}
}