'vector' 未在此范围内声明

'vector' was not declared in this scope

很抱歉提出了一个应该有简单解决方案的问题,但它让我抓狂。我检查了所有常见错误:名称空间标准、拼写、包含向量等。下面是我的 video.h 文件的缩写代码。

#include <iostream>
#include <string>
#include <new>
#include <vector>

using namespace std;

class Video
{
    public:
        Video(string, string, string, float, int);
        vector<Video*> video_ptrs;
        void print();
};

这是我的 main.cpp

的代码
#include "video.h"

using namespace std;

int main()
{
    ...

    Video* temp_here = new Video(title, url, comment, length, rating);
    video_ptrs.push_back(temp_here);

return 0;
}

returns 表示的错误,“'video_ptrs' 未在此范围内声明。”提前感谢您提供的任何帮助。

video_ptrsVideo的成员,用刚创建的对象调用它:

Video* temp_here = new Video(title, url, comment, length, rating);
temp_here->video_ptrs.push_back(temp_here);

不过,这会向同一对象的 vector 添加一个指针 temp_here,但我不确定这是否有意。

video_ptrs 确实没有在 main 中声明。你应该使用

temp_here->video_ptrs...