我目前在尝试通过在我的头文件中使用数组在我的代码中实现 std::vectors 时遇到了一些问题。
在过去的 1h 30m 中,我通过 StackOverflow 和 Google 进行了搜索,但找不到任何有用的信息。
简而言之,我一直在使用一个已在头文件中初始化并设置的数组。使用 s 转换此代码std::vector
会导致一些问题。
我正在 (cern) ROOT 中进行项目分析,它使用了很多显而易见的' typedef
,例如Int_t
==> int
。
自动导入的头文件之一调用using namespace std;
,因此我刚刚放弃了所有std::
命名空间。
目前我有:
// file.h
// ...
const Int_t kNpdgCodes = 14;
Int_t pdgCodeID[kNpdgCodes] = {
0, // other
22, // photon
111, // pi0
-211, // pim
211, // pip
221, // eta
130, // K0L
310, // K0s
-321, // Km
321, // Kp
-2112, // (a)n
2112, // n
2212, // p
3122 // Lambda
};
// ...
我正在尝试以以下形式获取它(或者更好,因为没有有用的 = 构造函数 [无法使用 C++11]):
// file.h
// ...
vector<Int_t> pdgCodeID;
pdgCodeID.push_back( 0); // other
pdgCodeID.push_back( 22); // photon
pdgCodeID.push_back( 111); // pi0
pdgCodeID.push_back( -211); // pim
pdgCodeID.push_back( 211); // pip
pdgCodeID.push_back( 221); // eta
pdgCodeID.push_back( 130); // K0L
pdgCodeID.push_back( 310); // K0s
pdgCodeID.push_back( -321); // Km
pdgCodeID.push_back( 321); // Kp
pdgCodeID.push_back(-2112); // (a)n
pdgCodeID.push_back( 2112); // n
pdgCodeID.push_back( 2212); // p
pdgCodeID.push_back( 3122); // Lambda
// ...
现在,当我编译它(通过 ROOT,但没关系)时,我收到以下错误:
error: expected constructor, destructor, or type conversion before ‘.’ token
对于对应的每一行push_back
。
这甚至可能在头文件中吗?出了什么问题?
我很感激任何帮助。