
C++关于数组和类模板对象的问题
今天看了C++关于数组和类模板的关系,想区别一下,编写代码将一个数组赋给另一个数组然后把这段代码改用vector实现.程序编译时提示模板类型变量vessel未定义,可在程...
今天看了C++关于数组和类模板的关系,想区别一下,编写代码将一个数组赋给另一个数组然后把这段代码改用vector实现.
程序编译时提示模板类型变量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;
} 展开
4个回答
展开全部
else if ( i == 2 ) vector<int> vessel;
其实等于
else if ( i == 2 ) { vector<int> vessel; }
故在 { } 结束之后在 { } 里构建的对象会按照构建的顺序的相反顺序来析构掉,这样的话vessel就会被析构了,不要因为少了一对 { } 号就忘记了这个。
其实等于
else if ( i == 2 ) { vector<int> vessel; }
故在 { } 结束之后在 { } 里构建的对象会按照构建的顺序的相反顺序来析构掉,这样的话vessel就会被析构了,不要因为少了一对 { } 号就忘记了这个。
展开全部
else if(i==2)
vector<int> vessel;
就是这句话 你把vessel限制在这个if里面了 出了这个语句 vessel就被释放了。
vector<int> vessel;
就是这句话 你把vessel限制在这个if里面了 出了这个语句 vessel就被释放了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-09-14
展开全部
。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询