为何C++ Primer(4th)中的源代码在vc中编译出错?
源代码如下(未做任何改动):
/*
* This file contains code from "C++ Primer, Fourth Edition ", by Stanley B.
* Lippman, Jose Lajoie, and Barbara E. Moo, and is covered under the
* copyright and warranty notices given in that book:
*
* "Copyright (c) 2005 by Objectwrite, Inc., Jose Lajoie, and Barbara E. Moo. "
*
*
* "The authors and publisher have taken care in the preparation of this book,
* but make no expressed or implied warranty of any kind and assume no
* responsibility for errors or omissions. No liability is assumed for
* incidental or consequential damages in connection with or arising out of the
* use of the information or programs contained herein. "
*
* Permission is granted for this code to be used for educational purposes in
* association with the book, given proper citation if and when posted or
* reproduced.Any commercial use of this code requires the explicit written
* permission of the publisher, Addison-Wesley Professional, a division of
* Pearson Education, Inc. Send your request for permission, stating clearly
* what code you would like to use, and in what specific way, to the following
* address:
*
* Pearson Education, Inc.
* Rights and Contracts Department
* 75 Arlington Street, Suite 300
* Boston, MA 02216
* Fax: (617) 848-7047
*/
#include <iostream>
using std::cout; using std::endl;
#include <vector>
using std::vector;
// pass iterators to the first and one past the last element to print
void print(vector <int> ::const_iterator beg,
vector <int> ::const_iterator end)
{
while (beg != end) {
cout < < *beg++;
if (beg != end) cout < < " "; // no space after last element
}
cout < < endl;
}
// vec is potentially large, so copying vec might be expensive
// use a const reference to avoid the copy
void print(const vector <int> &vec)
{
for (vector <int> ::const_iterator it = vec.begin();
it != vec.end(); ++it) {
if (it != vec.begin()) cout < < " ";
cout < < *it;
}
cout < < endl;
}
int main()
{
vector <int> vec(42);
print(vec.begin(), vec.end());
print(vec);
}
//我的编译结果是:22 errors
我发觉只要用到容器就会出错,这是怎么回事?我相信源码不会错的吧
希望有人可以帮忙编译一下,看结果是不是和我的一样。如果有能力,还望说明其中缘由。
Thanks!!!
[解决办法]
代码没问题..
[解决办法]
代码没错,将头文件重新输入vector就可以了,不要复制粘贴。(vc6.0)
[解决办法]
VC6是在C++标准99出来之前发布的
请不要再使用VC6