QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 753|回复: 14

关于STL

[复制链接]
发表于 2004-7-20 16:50:42 | 显示全部楼层 |阅读模式
我编了一个简单的C++程序,其中用到了STL中的一个模板,在编译时系统提示找不到所需文件.请问STL是不是需要自己下载安装啊
发表于 2004-7-20 17:01:30 | 显示全部楼层
STL是编译器都带有的
少了什么?
是不是你多写了.h
回复

使用道具 举报

 楼主| 发表于 2004-7-20 17:21:36 | 显示全部楼层
没有,我用的是classlib\listimp,用g++编译,找不到,我用find命令找了一下也没找到,我的gcc版本是2.96,linux是red 7.3
回复

使用道具 举报

发表于 2004-7-20 19:00:05 | 显示全部楼层
把你的程序和错误简要地列出来看看。
回复

使用道具 举报

发表于 2004-7-20 20:05:49 | 显示全部楼层
include <list>

可以到sgi的网站去看stl帮助
回复

使用道具 举报

 楼主| 发表于 2004-7-20 20:14:47 | 显示全部楼层
这是书上的一个例题
#include <iostream>

#include <iomanip>

#include <classlib\listimp>



void Display(int);

void Step(int m);

int* Init(int);



TIListImp<int> josephus;                  //

TIListIteratorImp<int> iter(josephus);    //josephus

int* curpos;                              //



void main()

{

  int n=10, s=4, m=4;                 //

  int* ap=Init(n);

  Step(s);

  for(int i=1; i<n; i++){

    Step(m);

    Display(*curpos);

    josephus.Detach(curpos);

  }

  cout <<"\nThe winner is "<<*iter.Current() << endl;
  delete[]ap;

}



//

int* Init(int n)

{

  int* a = new int[n];

  for(int i=0; i<n; i++){

    a = n - i;

    Display(i+1);

    josephus.Add(&a);

  }

  Display ( -1 );

  iter.Restart();           //

  return a;

}



//

void Display(int n)

{

  static int k;

  if(n<0){

    k = 0;

    cout <<endl;

    return;

  }

  cout <<setw(4) <<n;

  if (!(++k%10))

    cout <<endl;

}



//m

void Step(int m)

{

  for(int i=0; i<m; i++){

    curpos = iter.Current();

    iter++;

    if(!iter.Current())    //

      iter.Restart();

  }

}

cd /downsoft/C++/book/Josephus/
g++ -o jose6 jose6.cpp
jose6.cpp:8:28: classlib\listimp: No such file or directory
jose6.cpp:69:1: warning: no newline at end of file

Compilation exited abnormally with code 1 at Tue Jul 20 20:03:25
回复

使用道具 举报

发表于 2004-7-20 20:18:46 | 显示全部楼层
书上是错的

这本书不用再看了
回复

使用道具 举报

发表于 2004-7-20 20:20:44 | 显示全部楼层
TIListIteratorImp

这个不是标准stl里面的list

可能只是borland的list(从它命名来看)或是作者自己开发的stl

标准库里面stl是使用
list<int>  (定义容器)

list<int>::iterator (迭代器)


在我的站点有stl的介绍
loveunix.net
回复

使用道具 举报

发表于 2004-7-20 20:27:08 | 显示全部楼层
classlib  borland公司的owl产品。
回复

使用道具 举报

发表于 2004-7-20 20:46:11 | 显示全部楼层
真是误人子弟啊
回复

使用道具 举报

发表于 2004-7-20 21:05:38 | 显示全部楼层
[quote:f6b6a503ed="ShiChao"]真是误人子弟啊[/quote]兄台一定是发现有什么地方错了,赶紧指出来吧。
ps:大家都在学习中,有不对的地方相互帮助啊   
回复

使用道具 举报

发表于 2004-7-20 21:06:31 | 显示全部楼层
[quote:3bac584a2c="ShiChao"]真是误人子弟啊[/quote]有错难免吗,但你即知,指出来才是正理
回复

使用道具 举报

 楼主| 发表于 2004-7-20 21:13:44 | 显示全部楼层
thanks ,I see.
回复

使用道具 举报

发表于 2004-7-20 21:18:13 | 显示全部楼层
[quote:1b47535ce1="ShiChao"]真是误人子弟啊[/quote]兄台指楼主看的那本书?
回复

使用道具 举报

发表于 2004-7-20 21:49:22 | 显示全部楼层
不好意思,我刚才说的有歧义

我指楼主看的书
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 21:14 , Processed in 0.042154 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表