C++关于类模板类型和数组的问题
今天看到数组部分,想区别一下类模板+迭代器与数组输出的区别,写了一段代码,前一部分时将一个数组赋值到另一个数组中,后一部分是用vector模板对象vessel存储整型变量...
今天看到数组部分,想区别一下类模板+迭代器与数组输出的区别,写了一段代码,前一部分时将一个数组赋值到另一个数组中,后一部分是用vector模板对象vessel存储整型变量,并用迭代器iter输出。
编译过程中显示类模板类型vessel未定义,可我在程序中已经定义了该变量了。请大家帮我看一下问题出在什么地方。
代码如下:
#include<iostream>
#include<vector>
#include<cctype>
#include<cstddef>
#include<iterator>
using namespace std;
int main()
{
const size_t array_size=10;
int a[array_size],b[array_size],i;
cout<<"Please enter 1 to use array style or enter 2 to use vector style!";
cin>>i;
if(i==1)
{
cout<<"Please enter ten integers to initialization the a[]"<<endl;
for(size_t index=0;index!=array_size;index++)
{
cin>>a[index];
b[index]=a[index];
}
for(size_t ix=0;ix!=array_size;ix++)
cout<<b[ix]<<" ";
cout<<endl;
}
//===========================================================================================================================
else if(i==2)
vector<int> vessel;
int integer;
cout<<"Please enter the array elements:"<<endl;
for(vector<int>::size_type index=0;index!=array_size;index++)
{
cin>>integer;
vessel.push_back(integer);
}
for(vector<int>::iterator iter=vessel.begin();iter!=vessel.end();iter++)
{
cout<<*iter<<" ";
cout<<endl;
}
return 0;
} 展开
编译过程中显示类模板类型vessel未定义,可我在程序中已经定义了该变量了。请大家帮我看一下问题出在什么地方。
代码如下:
#include<iostream>
#include<vector>
#include<cctype>
#include<cstddef>
#include<iterator>
using namespace std;
int main()
{
const size_t array_size=10;
int a[array_size],b[array_size],i;
cout<<"Please enter 1 to use array style or enter 2 to use vector style!";
cin>>i;
if(i==1)
{
cout<<"Please enter ten integers to initialization the a[]"<<endl;
for(size_t index=0;index!=array_size;index++)
{
cin>>a[index];
b[index]=a[index];
}
for(size_t ix=0;ix!=array_size;ix++)
cout<<b[ix]<<" ";
cout<<endl;
}
//===========================================================================================================================
else if(i==2)
vector<int> vessel;
int integer;
cout<<"Please enter the array elements:"<<endl;
for(vector<int>::size_type index=0;index!=array_size;index++)
{
cin>>integer;
vessel.push_back(integer);
}
for(vector<int>::iterator iter=vessel.begin();iter!=vessel.end();iter++)
{
cout<<*iter<<" ";
cout<<endl;
}
return 0;
} 展开
1个回答
展开全部
else if (i==2)
后面这一大段需要用花括号括起来哦。不然if的执行体只有vector<int> vessel;这一句了
#include<iostream>
#include<vector>
#include<cctype>
#include<cstddef>
#include<iterator>
using namespace std;
int main()
{
const size_t array_size=10;
int a[array_size],b[array_size],i;
cout<<"Please enter 1 to use array style or enter 2 to use vector style!";
cin>>i;
if(i==1)
{
cout<<"Please enter ten integers to initialization the a[]"<<endl;
for(size_t index=0;index!=array_size;index++)
{
cin>>a[index];
b[index]=a[index];
}
for(size_t ix=0;ix!=array_size;ix++)
cout<<b[ix]<<" ";
cout<<endl;
}
//===========================================================================================================================
else if(i==2)
{
vector<int> vessel;
int integer;
cout<<"Please enter the array elements:"<<endl;
for(vector<int>::size_type index=0;index!=array_size;index++)
{
cin>>integer;
vessel.push_back(integer);
}
for(vector<int>::iterator iter=vessel.begin();iter!=vessel.end();iter++)
{
cout<<*iter<<" ";
cout<<endl;
}
}
return 0;
}
后面这一大段需要用花括号括起来哦。不然if的执行体只有vector<int> vessel;这一句了
#include<iostream>
#include<vector>
#include<cctype>
#include<cstddef>
#include<iterator>
using namespace std;
int main()
{
const size_t array_size=10;
int a[array_size],b[array_size],i;
cout<<"Please enter 1 to use array style or enter 2 to use vector style!";
cin>>i;
if(i==1)
{
cout<<"Please enter ten integers to initialization the a[]"<<endl;
for(size_t index=0;index!=array_size;index++)
{
cin>>a[index];
b[index]=a[index];
}
for(size_t ix=0;ix!=array_size;ix++)
cout<<b[ix]<<" ";
cout<<endl;
}
//===========================================================================================================================
else if(i==2)
{
vector<int> vessel;
int integer;
cout<<"Please enter the array elements:"<<endl;
for(vector<int>::size_type index=0;index!=array_size;index++)
{
cin>>integer;
vessel.push_back(integer);
}
for(vector<int>::iterator iter=vessel.begin();iter!=vessel.end();iter++)
{
cout<<*iter<<" ";
cout<<endl;
}
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询