小众知识

首页 > 正文

看了看c++ primer plus,有两个问题,请进

〈1〉原代码为:
#include
#include
#include
#include
#include
using namespace std;
int main()
{
const int N=6;
string s1[N]={"buffoon","thinkers","for","heavy","can","for"};
string s2[N]={"metal","any","food","elegant","deliver","for"};
setA(s1,s1+N);
setB(s2,s2+N);
ostream_iteratorout(cout," ");
cout<<"Set A: ";
copy(A.begin(),A.end(),out);
cout<cout<<"Set B: ";
copy(B.begin(),B.end().out);
cout<cout<<"Union of A and B:|n";
set_union(A.begin(),A.end(),B.begin(),B.end(),out);
cout<cout<<"Intersection of A and B:\n";
set_intersection(A.begin(),A.end(),B.begin(),B.end(),out);
cout<cout<<"Difference of A and B:\n";
set_difference(A.begin(),A.end(),B.begin(),B.end(),out);
cout<set C;
cout<<"Set C:\n";
set_union(A.begin(),A.end(),B.begin(),B.end(),insert_iterator>(C,C.begin()));
copy(C.begin(),C.end(),out);
cout<string s3("grungy");
C.insert(s3);
cout<<"Set C after insertion: \n";
copy(C.begin(),C.end(),out);
cout<cout<<"Showing a range: \n";
copy(C.lower_bound("ghost"),C.upper_bound("spook"),out);
cout<return 0;
}



有什么问题???  

 zhang11770 发表于:2003-07-30 21:37:34
得分:0 

源程序:

#include
#include
#include
#include
using namespace std;
int main()
{
string s1[4]={"fine","fish","fashion","fate"};
string s2[2]={"busy","bats"};
string s3[2]={"silly","singers"};
vectorwords(4);
copy(s1,s1+4,words.begin());
ostream_iteratorout(cout," ");
copy(words.begin(),words.end(),out);
cout<copy(s2,s2+2,back_insert_iterator>(words));
copy(words.begin(),words.end(),out);
cout<copy(s3,s3+2,insert_iterator>(words,words.begin()));
copy(words.begin(),words.end(),out);
cout<return 0;
}

编译后:
E:\c++\xxx\inserts.cpp(16) : error C2061: syntax error : identifier 'words'
E:\c++\xxx\inserts.cpp(24) : fatal error C1004: unexpected end of file found

 zhang11770 发表于:2003-08-02 13:17:00
得分:0 

?? 

 airtraffic 发表于:2003-08-02 13:46:36
得分:0 

?????
什么问题? 

 kuaibao 发表于:2003-08-02 13:49:59
得分:0 

你什么问题啊~~~~~~~~ 

 zhang11770 发表于:2003-08-02 14:01:46
得分:0 

编译后的问题怎么解决?? 

 Meyer 发表于:2003-08-02 14:02:14
得分:0 

用的是VC吧?
加上
#include "afx.h"
或者去掉预编译头文件选项 

 goldencz 发表于:2003-08-02 14:07:43
得分:0 

应该是这句有错vectorwords(4);


 cityvagrant 发表于:2003-08-02 14:09:00
得分:0 

words前面加空格 

 ckp 发表于:2003-08-02 14:22:43
得分:0 

加上#include  

 fayejt 发表于:2003-08-02 16:35:00
得分:0 

------ 已启动生成:项目:c++primer, 配置:Debug Win32 ------

正在编译...
arrfun2.cpp
f:\cpp\arrfun2.cpp(19) : error C2039: “out” : 不是“std::_Tree<_Traits>::iterator”的成员
        with
        [
            _Traits=std::_Tset_traits,std::allocator,false>
        ]
        d:\Program Files\Microsoft Visual Studio .NET\Vc7\include\xtree(290) : 参见“std::_Tree<_Traits>::iterator”的声明
        with
        [
            _Traits=std::_Tset_traits,std::allocator,false>
        ]
f:\cpp\arrfun2.cpp(19) : error C2780: “_OutIt std::copy(_InIt,_InIt,_OutIt)” : 应输入 3 个参数,却提供了 2 个
        d:\Program Files\Microsoft Visual Studio .NET\Vc7\include\xutility(1119) : 参见“std::copy”的声明
f:\cpp\arrfun2.cpp(32) : error C2947: 应由“>”终止 模板参数列表,却找到“>>”
f:\cpp\arrfun2.cpp(32) : error C2665: “std::set,class std::allocator >,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >::__ctor” : 所有的 4 重载都不能转换参数 1(从“std::set<_Kty,_Pr,_Alloc>”类型)
        with
        [
            _Kty=std::string,
            _Pr=std::less,
            _Alloc=std::allocator
        ]
        d:\Program Files\Microsoft Visual Studio .NET\Vc7\include\set(89): 可能是“std::set<_Kty,_Pr,_Alloc>::set(const std::set<_Kty,_Pr,_Alloc>::key_compare &,const std::set<_Kty,_Pr,_Alloc>::allocator_type &)”
        with
        [
            _Kty=std::string,
            _Pr=std::less,
            _Alloc=std::allocator
        ]
        试图匹配参数列表“(std::set<_Kty,_Pr,_Alloc>, std::_Tree<_Traits>::iterator)”时
        with
        [
            _Kty=std::string,
            _Pr=std::less,
            _Alloc=std::allocator
        ]
        and
        [
            _Traits=std::_Tset_traits,std::allocator,false>
        ]
f:\cpp\arrfun2.cpp(32) : error C2143: 语法错误 : 缺少“,”(在“)”的前面)
f:\cpp\arrfun2.cpp(33) : error C2143: 语法错误 : 缺少“,”(在“)”的前面)
f:\cpp\arrfun2.cpp(38) : error C2143: 语法错误 : 缺少“,”(在“)”的前面)
f:\cpp\arrfun2.cpp(41) : error C2143: 语法错误 : 缺少“,”(在“)”的前面)
f:\cpp\arrfun2.cpp(46) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
f:\cpp\arrfun2.cpp(47) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
f:\cpp\arrfun2.cpp(47) : fatal error C1004: 遇到意外的文件结束

生成日志保存在“file://f:\vs7\c++primer\Debug\BuildLog.htm”中
c++primer - 11 错误,0 警告


---------------------- 完成 ---------------------

    生成:0 已成功, 1 已失败, 0 已跳过 

 fayejt 发表于:2003-08-02 16:37:50
得分:0 

加了#include 之后……

------ 已启动生成:项目:c++primer, 配置:Debug Win32 ------

正在编译...
arrfun2.cpp
f:\cpp\arrfun2.cpp(20) : error C2039: “out” : 不是“std::_Tree<_Traits>::iterator”的成员
        with
        [
            _Traits=std::_Tset_traits,std::allocator,false>
        ]
        d:\Program Files\Microsoft Visual Studio .NET\Vc7\include\xtree(290) : 参见“std::_Tree<_Traits>::iterator”的声明
        with
        [
            _Traits=std::_Tset_traits,std::allocator,false>
        ]
f:\cpp\arrfun2.cpp(20) : error C2780: “_OutIt std::copy(_InIt,_InIt,_OutIt)” : 应输入 3 个参数,却提供了 2 个
        d:\Program Files\Microsoft Visual Studio .NET\Vc7\include\xutility(1119) : 参见“std::copy”的声明
f:\cpp\arrfun2.cpp(33) : error C2947: 应由“>”终止 模板参数列表,却找到“>>”
f:\cpp\arrfun2.cpp(33) : error C2665: “std::set,class std::allocator >,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >::__ctor” : 所有的 4 重载都不能转换参数 1(从“std::set<_Kty,_Pr,_Alloc>”类型)
        with
        [
            _Kty=std::string,
            _Pr=std::less,
            _Alloc=std::allocator
        ]
        d:\Program Files\Microsoft Visual Studio .NET\Vc7\include\set(89): 可能是“std::set<_Kty,_Pr,_Alloc>::set(const std::set<_Kty,_Pr,_Alloc>::key_compare &,const std::set<_Kty,_Pr,_Alloc>::allocator_type &)”
        with
        [
            _Kty=std::string,
            _Pr=std::less,
            _Alloc=std::allocator
        ]
        试图匹配参数列表“(std::set<_Kty,_Pr,_Alloc>, std::_Tree<_Traits>::iterator)”时
        with
        [
            _Kty=std::string,
            _Pr=std::less,
            _Alloc=std::allocator
        ]
        and
        [
            _Traits=std::_Tset_traits,std::allocator,false>
        ]
f:\cpp\arrfun2.cpp(33) : error C2143: 语法错误 : 缺少“,”(在“)”的前面)
f:\cpp\arrfun2.cpp(34) : error C2143: 语法错误 : 缺少“,”(在“)”的前面)
f:\cpp\arrfun2.cpp(39) : error C2143: 语法错误 : 缺少“,”(在“)”的前面)
f:\cpp\arrfun2.cpp(42) : error C2143: 语法错误 : 缺少“,”(在“)”的前面)
f:\cpp\arrfun2.cpp(47) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
f:\cpp\arrfun2.cpp(48) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
f:\cpp\arrfun2.cpp(48) : fatal error C1004: 遇到意外的文件结束

生成日志保存在“file://f:\vs7\c++primer\Debug\BuildLog.htm”中
c++primer - 11 错误,0 警告


---------------------- 完成 ---------------------

    生成:0 已成功, 1 已失败, 0 已跳过

 fayejt 发表于:2003-08-02 16:41:24
得分:0 

我也在看c++ primer plus,有问题一起探讨啊

msn:jlhoner@hotmail.com 

 zhang11770 发表于:2003-08-03 12:12:35
得分:0 

这不是vc 

 dddd8888 发表于:2003-08-03 12:33:17
得分:30 

把copy(s2,s2+2,back_insert_iterator>(words));
改成copy(s2,s2+2,back_insert_iterator >(words)); //加个空格 

上一篇:关于虚复制构造函数的问题?
下一篇:关于运算符重载问题!!!

分享到: