Cha*_*son 1 c++ structure vector
好的,我是从vb.net到c ++.我试图在结构中使用向量,但编译器对我大喊大叫.当前的陈述有什么问题?
#include <vector>
struct FactorSet
{
vector<long long> UpperFactor(0);
vector<long long> LowerFactor(0);
};
Run Code Online (Sandbox Code Playgroud)
输出错误(Visual Studio 2008):
错误1错误C2059:语法错误:'常量'
我冒昧地猜测,我对矢量究竟是什么缺乏了解.在我看来它是一个对象,虽然我认为它的最新名称是模板.像字符串这样的其他对象似乎没有问题.我还假设这也扩展到类定义,因为结构和类是如此相似.
小智 6
你要:
#include <vector>
struct FactorSet
{
std::vector<long long> UpperFactor;
std::vector<long long> LowerFactor;
};
Run Code Online (Sandbox Code Playgroud)
虽然你可能也有很长的问题,因为这目前不是C++的一部分.
如果你真的想给向量赋一个大小,你需要通过结构构造函数来做:
struct FactorSet
{
std::vector<long long> UpperFactor;
std::vector<long long> LowerFactor;
FactorSet() : UpperFactor(42), LowerFactor(42) {}
};
Run Code Online (Sandbox Code Playgroud)
所以现在当你说:
FactorSet f;
Run Code Online (Sandbox Code Playgroud)
f中的向量都将具有42的大小.
至于矢量实际上是什么,它是一个非常类似于字符串的类,除了在矢量的情况下你必须说它包含什么类型的东西.所以
vector <char> s;
Run Code Online (Sandbox Code Playgroud)
非常相似(但不完全相同):
string s;
Run Code Online (Sandbox Code Playgroud)