C ++中的动态对象数组

时间:2012-03-11 23:38:58

标签: c++ arrays dynamic

我正在尝试创建一个动态的对象数组,类似于Java中的ArrayLists。我是C ++的新手,无法让它工作。

class Album{

private:

public:
    void addPhoto(Photo p){

    }

};

我的私人数据库应该是什么样子,如何添加p?我出于某种原因需要指针吗?

4 个答案:

答案 0 :(得分:2)

您应该使用std::vector

答案 1 :(得分:2)

您查找的功能已经在stl collection classes中退出,并且在了解您的应用程序后,您将不得不告诉您天气需要指针。

底层容器的基本布局可能是这样的。

class Album{    

public:
    void addPhoto(Photo p){
         Photos.push_back(p); 
    }
private:
    std::vector<Photo> Photos; 

};

答案 2 :(得分:0)

您可以使用内置的std :: vector类,其行为与ArrayList非常相似。 (编辑......看起来有人打败了我)

答案 3 :(得分:0)

@fontanini给了你一个很好的答案,如果你需要一个动态的对象数组,你应该使用vector。

但也许你不需要上课。并非C ++中的所有内容都需要封装在类中,除非您确实需要它。

考虑一下您的数据结构以及有哪些要求。您可能希望了解有关标准C ++库和STL的更多信息,以熟悉其他容器及其功能,限制和目标:

关于STL“Introduction to STL with Stephan T Lavavej

的精彩视频讲座