比方说,我声明function_x
通过
vector<int> function_x(int i1, int i2);
在function.h中,并通过
定义它vector<int> function_x(int i1, int i2) {
vector<int> vec;
vec.push_back(i1);
vec.push_back(i2);
return vec;
}
在函数.cpp中。
要使用 vector ,我需要写#include <vector>
在函数.h中。
如果是这样,我就不需要写 #include <vector>
在 function.cpp 中,因为我输入 #include "function.h"
无论如何,它包含 #include <vector>
.
但是我感觉有点奇怪因为我在function.cpp中使用了 vector 而不包含<vector>
(直接)。
这是正常的使用方式吗<vector>
(或任何 STL 容器)?
或者,我应该写#include <vector>
在 function.cpp 中为了明确起见,即使我确定它是不必要的? ( <vector>
应该包含防护)
最佳答案
你应该#include <vector>
在每个需要它的文件、 header 和源中。 header 和源之间并不总是存在一对一的关系,并且您永远不知道程序的结构会如何随着时间的推移而变化。保持关系简单可以简化维护。
例如,尝试跟踪 #include
可能会变得相当复杂。文件已包含于其中一个 header 中。它在哪里结束?您只接受包含还是接受包含的包含?
如果您必须搜索包含来尝试解析所有符号的来源,那么判断当前文件所依赖的内容也会困难得多。
关于c++ - 在 .h 和 .cpp 中使用 <vector> (或任何 STL 容器)的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40337736/