vc++6.0不能编译vector<int>::size_type i=0,c=0,j=0;???
#include<iostream>#include<vector>usingstd::cout;usingstd::cin;usingstd::endl;usingst...
#include <iostream>
#include <vector>
using std::cout;
using std::cin;
using std::endl;
using std::vector;
//---两两相加
int main()
{ int n;
vector<int> v;
vector<int>::size_type i=0,c=0,j=0;//就是这一行出问题
while(cin>>n)
{v.push_back(n);
c++;}
if(c%2!=0)
{
cout<<"最后一个数没有求和"<<endl;
for(i=0;i!=c-1;i=i+2)
v[j++]=v[i]+v[i+1];
v[j]=v[c-1];
for(i=0;i!=j+1;i++)
cout<<v[i]<<" ";
cout<<endl;
}
else
{
for(i=0;i!=c;i=i+2)
v[j++]=v[i]+v[i+1];
for(i=0;i!=j;i++)
cout<<v[i]<<" ";
cout<<endl;
}
return 0;
}
以下是问题:
E:\c++源程序\3-13.cpp(12) : error C2653: 'vector<int,class std::allocator<int> >' : is not a class or namespace name
E:\c++源程序\3-13.cpp(12) : error C2065: 'size_type' : undeclared identifier
E:\c++源程序\3-13.cpp(12) : error C2146: syntax error : missing ';' before identifier 'i'
E:\c++源程序\3-13.cpp(12) : error C2065: 'i' : undeclared identifier
E:\c++源程序\3-13.cpp(12) : error C2065: 'c' : undeclared identifier
E:\c++源程序\3-13.cpp(12) : error C2065: 'j' : undeclared identifier
在C-free中可以通过编译并正确运行,求解,不胜感谢 展开
#include <vector>
using std::cout;
using std::cin;
using std::endl;
using std::vector;
//---两两相加
int main()
{ int n;
vector<int> v;
vector<int>::size_type i=0,c=0,j=0;//就是这一行出问题
while(cin>>n)
{v.push_back(n);
c++;}
if(c%2!=0)
{
cout<<"最后一个数没有求和"<<endl;
for(i=0;i!=c-1;i=i+2)
v[j++]=v[i]+v[i+1];
v[j]=v[c-1];
for(i=0;i!=j+1;i++)
cout<<v[i]<<" ";
cout<<endl;
}
else
{
for(i=0;i!=c;i=i+2)
v[j++]=v[i]+v[i+1];
for(i=0;i!=j;i++)
cout<<v[i]<<" ";
cout<<endl;
}
return 0;
}
以下是问题:
E:\c++源程序\3-13.cpp(12) : error C2653: 'vector<int,class std::allocator<int> >' : is not a class or namespace name
E:\c++源程序\3-13.cpp(12) : error C2065: 'size_type' : undeclared identifier
E:\c++源程序\3-13.cpp(12) : error C2146: syntax error : missing ';' before identifier 'i'
E:\c++源程序\3-13.cpp(12) : error C2065: 'i' : undeclared identifier
E:\c++源程序\3-13.cpp(12) : error C2065: 'c' : undeclared identifier
E:\c++源程序\3-13.cpp(12) : error C2065: 'j' : undeclared identifier
在C-free中可以通过编译并正确运行,求解,不胜感谢 展开
2个回答
展开全部
template<class _Ty, class _A = allocator<_Ty> >
class vector {
public:
typedef vector<_Ty, _A> _Myt;
typedef _A allocator_type;
typedef _A::size_type size_type;
在vector的定义中,不仅仅包含vector自身需要的类定义,还有像allocator,typedef这样的定义。
vector<int>::size_type i=0,c=0,j=0;改成std::vector<int>::size_type i=0,c=0,j=0;也是可以的。
class vector {
public:
typedef vector<_Ty, _A> _Myt;
typedef _A allocator_type;
typedef _A::size_type size_type;
在vector的定义中,不仅仅包含vector自身需要的类定义,还有像allocator,typedef这样的定义。
vector<int>::size_type i=0,c=0,j=0;改成std::vector<int>::size_type i=0,c=0,j=0;也是可以的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询