vector容器问题!

时间:2008-07-24 13:55:47   来源:论坛整理  作者:  编辑:chinaitzhe
代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
using std::cout;
using std::endl;
using std::vector;

void show_sequence(vector <int> ::const_iterator first,vector <int> ::const_iterator last){
cout < < "{ ";
std::copy(first,last,std::ostream_iterator <int> (cout, " "));
cout < < "} " < <endl;
}

void inspect_vector(const vector <int> & v){
cout < < "Vector has " < <v.size() < < " elements: ";
show_sequence(v.begin(),v.end());
}

int main(){
vector <int> v;
cout < < "new vector created " < <endl;
inspect_vector(v);

cout < < "filling vector from array " < <endl;
int values[]={1,3,7,5};
v.insert(v.end(),values 1,values 3);
inspect_vector(v);

cout < < "appending value 5 " < <endl;
v.push_back(5);
inspect_vector(v);

cout < < "inserting element 4 at offset 1 " < <endl;
v.insert(v.begin() 1,4);
inspect_vector(v);

cout < < "clearing all elements " < <endl;
v.clear();
inspect_vector(v);

return 0;
}


运行时,错误提示如下:

--------------------Configuration: 20_2 - Win32 Debug--------------------
Compiling...
main.cpp
D:\My Documents\学习园地\IT\IT技术\编程\语言\C \ANSI C \资料\例题\20_2\main.cpp(8) : error C2653: 'vector <int,class std::allocator <int> > ' : is not a class or namespace name
D:\My Documents\学习园地\IT\IT技术\编程\语言\C \ANSI C \资料\例题\20_2\main.cpp(8) : error C2065: 'const_iterator ' : undeclared identifier
D:\My Documents\学习园地\IT\IT技术\编程\语言\C \ANSI C \资料\例题\20_2\main.cpp(8) : error C2146: syntax error : missing ') ' before identifier 'first '
D:\My Documents\学习园地\IT\IT技术\编程\语言\C \ANSI C \资料\例题\20_2\main.cpp(8) : error C2182: 'show_sequence ' : illegal use of type 'void '
D:\My Documents\学习园地\IT\IT技术\编程\语言\C \ANSI C \资料\例题\20_2\main.cpp(8) : error C2653: 'vector <int,class std::allocator <int> > ' : is not a class or namespace name
D:\My Documents\学习园地\IT\IT技术\编程\语言\C \ANSI C \资料\例题\20_2\main.cpp(8) : error C2059: syntax error : ') '
D:\My Documents\学习园地\IT\IT技术\编程\语言\C \ANSI C \资料\例题\20_2\main.cpp(8) : error C2143: syntax error : missing '; ' before '{ '
D:\My Documents\学习园地\IT\IT技术\编程\语言\C \ANSI C \资料\例题\20_2\main.cpp(8) : error C2447: missing function header (old-style formal list?)
D:\My Documents\学习园地\IT\IT技术\编程\语言\C \ANSI C \资料\例题\20_2\main.cpp(16) : error C2064: term does not evaluate to a function
执行 cl.exe 时出错.

20_2.exe - 1 error(s), 0 warning(s)

我用的是VC6,这个程序是书上的一道例题,但书上都能运行,为什么我运行时会出现这个错误,我核对个代码,和书上的一样,没有错。请问各位高手,如何解决,谢谢!!!
网友回复:哈哈,可是你没有用STD
网友回复:

vs2005 可以编译通过


你试试把

using std::cout;
using std::endl;
using std::vector;

改成

using namespace std;
网友回复:什么是STD?
网友回复:VS2005怎么没有代码自动提示功能啊,VC6都是有的啊?
网友回复:你那个不叫运行时错误,是编译错误
在上面加上using namespace std;
意思是你用STL的那些类(vector等)就需要用这句告诉编译器你要用std这个名字空间的内容
看你调的程序和你的基础知识不是很对等,还是先查查这些语言的基础内容吧
网友回复:好啦,在VC2005里运行通过了,看来是VC6的bug引起的。
我还有个问题,在VC6里,一个项目只建一个目录,且里面只有一个debug目录能存储生成的exe文件。而VS2005里,怎么每次建立一个项目,都有两个目录,即一个目录里套一个目录,而且这两个目录的名字都相同,且都是项目名字,但这两个目录装的文件却不一样,这是怎么回事啊?能把它改成一个项目只建一个项目名字的目录吗?请高手指点,谢谢!!!
网友回复:新建项目的时候,勾掉Create Directory for Solution
网友回复:我的是中文版的,是不是勾掉“创建解决方案的目录”?
网友回复:你试试就知道了。
网友回复:知道啦,谢谢哈!!!
网友回复:add " using namespace std"
I also met this issue before.
关键字:vector,容器,问题,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面