![](/img/trans.png)
[英]Clarification about the header-guards and header-file inclusion used in C/C++
[英]How can I use the vector datatype in a header-file in C++?
我在矩陣下面有這個結構。 當我在main.cpp中聲明它時,它可以正常工作,但是由於程序變得更加復雜,我決定將其換出。 所以我的頭文件看起來像這樣:
#ifndef MATRIX_STRUCT_H
#define MATRIX_STRUCT_H
#include <vector>
// Matrix datatype
struct matrix_ {
// Matrix dimension m x n
unsigned int dimX; // n
unsigned int dimY; // m
bool square;
// Matrix coefficients
vector <vector <double>> coef;
};
typedef struct matrix_ matrix;
#endif // MATRIX_STRUCT_H
我現在#include <vector>
的問題是,第4行#include <vector>
不管是否在這里都沒有區別。 我總是得到第13行的錯誤
error: 'vector' does not name a type
如果您想知道為什么我使用的是結構而不是類,那么我只是從C剛來的,所以我還沒有任何關於類的經驗。
請問有人可以幫助我嗎? 放棄這些結構而只專注於課堂會更好(會有所幫助)嗎?
C ++標准庫在std
名稱空間中包含放置新的聲明。 您需要編寫std::vector
而不是vector
。
它可能在您的.cpp文件中起作用的原因是,您在行頂部附近using namespace std
,從而將命名空間std
所有內容都帶入了本地命名空間。 這是不好的做法 ,我建議您停止這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.