好的,我要从 vb.net 转到 C++。我试图在结构中使用 vector ,但编译器为此对我大吼大叫。目前的说法有什么问题?
#include <vector>
struct FactorSet
{
vector<long long> UpperFactor(0);
vector<long long> LowerFactor(0);
};
输出错误(Visual Studio 2008):
错误 1 错误 C2059:语法错误:“常量”
我敢猜测这是我对 vector 的真正含义缺乏了解。在我看来,它是一个对象,尽管我认为它是所谓的模板。其他像字符串这样的对象似乎没有问题。我还假设这也扩展到类定义,因为结构和类非常相似。
最佳答案
你想要:
#include <vector>
struct FactorSet
{
std::vector<long long> UpperFactor;
std::vector<long long> LowerFactor;
};
虽然你可能也有 long long 的问题,因为它目前不是 C++ 的一部分。
如果你真的想给 vector 一个大小,你需要通过结构构造函数来实现:
struct FactorSet
{
std::vector<long long> UpperFactor;
std::vector<long long> LowerFactor;
FactorSet() : UpperFactor(42), LowerFactor(42) {}
};
所以现在当你说:
FactorSet f;
f 中的 vector 的大小都是 42。
至于 vector 实际上是什么,它是一个非常像字符串的类,除了在 vector 的情况下你必须说出它包含什么类型的东西。所以
vector <char> s;
与(但不完全相同)非常相似:
string s;
关于c++ - 在结构中使用 C++ vector 有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3224063/