【问题标题】:vector referencing a class [closed]引用类的向量[关闭]
【发布时间】:2026-02-13 05:00:01
【问题描述】:

考虑以下几点:

 class a
 {
  int p;
   a(int x)
    {
    p=x;
 }
 }

class b
{ vector<a> var;
   b(*type*a l)
    {
     new var;
     var(l);
     }
 }

基本上,我试图创建一个类('a')的向量并从另一个类调用它。几个问题-

1) 在 b 类中,'new var' 的位置是否正确?当我定义向量 var 时,我应该在构造函数之外还是在构造函数内部声明它?这些情况是什么意思。

2) 在 main 中,我也想声明一个 b 类的向量。我该怎么做?

Vector<b>  ex = new Vector<b> (100,5); sound right? 

即,100 是大小,5 是达到满容量时应该增加的数量?

我可以不指定大小并通过 addElement() 继续添加吗?- 向量类型会自动增加其大小吗?

3)因此,要访问b的第i个元素,以及b的成员变量'var'的第j个元素, 我将如何指定它? 这对吗?

 ex[i].var.get[j] ?

我刚刚开始做这一切,所以请耐心等待。我是一个真正的新手。

【问题讨论】:

  • 我不是反对者,但是——你真的应该下载一个 Java 编译器(或者更好的是,像 Eclipse 这样的 IDE),买一本关于该语言的书,然后按照自己的方式学习.
  • 1) 学会正确缩进你的代码。 2)通过实际编写和编译来学习,而不仅仅是头脑风暴。如果您实际上已经阅读了一些介绍性材料,并且通过更仔细地阅读 API 来回答大部分问题。
  • 很抱歉。我刚刚开始并愿意学习。我正在使用 IDE,并且每一行都不断引发错误。我昨天刚开始使用 Java 和向量,但在尝试使用向量引用类时遇到问题。这就是问题的症结所在。

标签: java class vector 2d-vector


【解决方案1】:

首先,如果您指的是java.util.Vector,除非您知道自己在做什么,否则不要使用它。请改用java.util.ArrayList

下面展示了如何声明和初始化一个包含a类型对象的ArrayList。

class b { 

    private ArrayList<a> var = new ArrayList<a>(); // declare & intialize like this

    b(a l) {
        var.add(l);
    }
}

ArrayList 的 ArrayList...

ArrayList<ArrayList<Foo>> foo = new ArrayList<ArrayList<Foo>>();

// initialize foo

foo.get(0).get(2);  // like foo[0][2] if foo were an array

【讨论】:

  • 谢谢!但不应该是 var.add(l) 吗?