【发布时间】:2012-12-04 18:36:53
【问题描述】:
我是使用 c++ 的新手,我真的不知道如何使用 STL 列表。我正在制作城市街道交叉口的图表。这是我的结构/头文件:
全局标题
#ifndef GLOBAL_H
#define GLOBAL_H
typedef struct Vertex_ vertex;
typedef struct Edge_ ege;
#endif
顶点标题
#ifndef VERTEX_H
#define VERTEX_H
#include<list>
#include "global.h"
#include "edgelist.h"
struct Vertex_{
int xsect;
int danger;
char xstreet[25];
list<Edge_> EdgeList;
struct Vertex_ *next;
struct Vertex_ *prev;
};
#endif
边缘标题
#ifndef EDGE_H
#define EDGE_H
#include "global.h"
#include "vertex.h"
struct Edge_{
Vertex_ *adjvertex;
int distance;
struct Edge_ *next;
struct Edge_ *prev;
};
#endif
我的导师没有给我们任何关于 c++ 的注释,所以我真的不知道如何开始绘制图表。以下是我考虑开始我的主要工作的方式:
#include<iostream>
#include<list>
#include "vertex.h"
#include "edge.h"
#include "global.h"
int main(){
list<Vertex_> xsection;
list<Edge_> EdgeList;
}
我必须从另一个文件中扫描数据,所以我真的不知道列表的大小。问题是我是否需要初始化列表的大小,或者我是否可以使用迭代器添加内容。另一个问题是如何访问此列表元素中的数据。我是否只使用迭代器并拥有:
*iter->EdgeList.begin();
如果有人拥有一个包含 STL 列表的所有命令和功能以及如何使用它的网站,那就太棒了,因为我目前打开了 10 个网站,只是为了看看这些列表是如何工作的。
【问题讨论】:
-
这是我使用 c++ 的第二天,所以真的不知道那个网站在说什么,因为它没有明确的解释,并假设你完全了解 c++。你能解释一下使用 list a; 之间的区别吗?和 std::list?
-
@user1726053:如果这是你的第二天,你就有点过头了。这是上课的吗?
-
什么意思?
std::list<int> a;与list<int> a;?前者更清楚您使用的是哪个list,后者需要某种形式的using声明。 -
哈哈哈上周的课程和教授让我们从 c 切换到 c++ 以完成最终项目。我知道我将如何在 C 中做到这一点,只是认为如果我使用 STL 列表会更容易。我的意思是我认真地认为只要学习如何使用 STL 实现列表并完成……语法简直要了我的命。