繁体   English   中英

如何在多个文件中声明全局std :: vector 2d数组? C ++

[英]How do you declare a global std::vector 2d array across multiple files? c++

我有一个头文件,其中有一个2d数组extern声明,和一个cpp文件,其中有数组的实际定义供它链接。 我想用2d向量替换这个数组,但我的编译器一直告诉我:

            'A': redefinition; multiple initialization

这是我的代码

header.h

            #ifndef HEADERS_H_DECLARED
            #define HEADERS_H_DECLARED

            #include <vector>
            ...
            extern std::vector<std::vector<int>> A(10, std::vector<int>(10));
            ...
            #endif

A.cpp

            #include "headers.h"
            ...
            std::vector<std::vector<int>> A(10, std::vector<int>(10));
            ...

然后在我所有的其他.cpp文件中,我使用此向量。 当它是一个数组时它一切正常,我认为它与我的语法有关,用于在多个文件中声明一个二维向量,但我不知道!

像这样:

header.h:

#ifndef HEADERS_H_DECLARED
#define HEADERS_H_DECLARED

#include <vector>

extern std::vector<std::vector<int>> A;

#endif

A.cpp:

#include "header.h"

std::vector<std::vector<int>> A(10, std::vector<int>(10));

确保正确拼写文件的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM