数组:
1).定义时:不能用变量定义数组的维数
不能用函数调用,不是常量表达式不能用来定义数组维数
2).不允许数组直接复制和赋值:(error:ia1=ia2);
3).数组的复制和输出
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
const size_t array_size=10;
int ia[array_size]; //10 ints,elements are
uninitialied
//loop through array,assigning value of its index to each
element
for(size_t ix=0;ix!=array_size;++ix)
{
ia[ix]=ix;
cout<<ia[ix]<<" ";
}
cout<<endl;
const size_t array_size1=7;
int ia1[]={0,1,2,3,4,5,6};
int ia2[array_size1]; //local array,elements
uninitialized
//copy elements from ia1 into ia2
for(size_t ix1=0;ix1!=array_size1;++ix1)
{
ia2[ix1]=ia1[ix1];
cout<<ia2[ix1]<<" ";
}
return 0;
}
4).让用户输入10个数到一个数组中 并逆序输出,然后赋给另外一个数组 并一
次输出
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout<<"Please Enter Arrays: "<<endl;
const size_t array_size=10;
int array[array_size];
int ival,ix=0;
//read input
while(cin>>ival)
{
array[ix]=ival;
++ix;
}
//reverse the value of array,then output
for(size_t iy=array_size-1;iy!=-1;iy--)
{
cout<<array[iy]<<" ";
}
cout<<endl;
//assign the array[array_size] to another
int ia[array_size];
//copy elements from array into ia
for(size_t index=0;index!=array_size;++index)
{
ia[index]=array[index];
cout<<ia[index]<<" ";
}
cout<<endl;
return 0;
}
5).让用户创建一个vector并赋值给另一个vector且输出
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
cout<<"Pleas Enter numbers(Ctrl+Z to end): "<<endl;
vector<int> ivec;
int ival;
while(cin>>ival)
ivec.push_back(ival);
if(ivec.size()==0)
{
cout<<"No Elements?! "
<<endl;
return -1;
}
vector<int> ivec1;
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end
();++iter)
{
ivec1.push_back(*iter);
}
cout<<endl;
for(vector<int>::iterator iter1=ivec1.begin();iter1!
=ivec1.end();++iter1)
{
cout<<*iter1<<" ";
}
cout<<endl;
return 0;
}
6).判断两个数组是否相等
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
const size_t array_size=5;
int ia1[array_size],ia2[array_size];
size_t ix=0;
//读入两个数组的元素值
cout<<"Please Enter"<<array_size<<"numbers for array1:
"<<endl;
for(ix=0;ix!=array_size;++ix)
cin>>ia1[ix];
cout<<endl;
cout<<"Please Enter"<<array_size<<"numbers for array2:
"<<endl;
for(ix=0;ix!=array_size;++ix)
cin>>ia2[ix];
cout<<endl;
//判断两个数组是否相等
for(ix=0;ix!=array_size;++ix)
if(ia1[ix]!=ia2[ix])
{
cout<<"array1 is not equal to array2"<<endl;
return 0;
}
cout<<"array1 is equal to array2"<<endl;
return 0;
}
7).一个有10个int型元素的数组,并以其在数组中的位置作为各元素的初值且输
出
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
const size_t array_size=10;
int ia[array_size];
size_t ix;
for(ix=0;ix!=array_size;++ix)
{
ia[ix]=ix+1;
cout<<ia[ix]<<" ";
}
cout<<endl;
return 0;
}
8).判断两个vector是否相等
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec1,ivec2;
int ival;
//读入两个vector的元素值
cout<<"Enter numbers for vector1(0 to end): "<<endl;
cin>>ival;
while(ival!=0)
{
ivec1.push_back(ival);
cin>>ival;
}
cout<<"Enter numbers for vector2(0 to end): "<<endl;
cin>>ival;
while(ival!=0)
{
ivec2.push_back(ival);
cin>>ival;
}
//判断两个vector是否相等
if(ivec1.size()!=ivec2.size())
cout<<"Vector1 is not equal to vector2"<<endl;
else if(ivec1.size()==0)
cout<<"Vector1 is equal to vector2"<<endl;
else {
//两个vector长度相等且不为0
vector<int>::iterator iter1,iter2;
iter1=ivec1.begin(),iter2=ivec2.begin();
while(*iter1==*iter2&&iter1!=ivec1.end()&&iter2!=ivec2.end())
{
++iter1;
++iter2;
}
if(iter1==ivec1.end()) //所有元素都相等
cout<<"Vector1 is equal to vector2"<<endl;
else
cout<<"Vector1 is not equal to vector2"<<endl;
}
return 0;
}