C++:调整大小必须在类/结构/联合中
C++: resize must be in class/structure/union
我有
struct udtJoinFeatures
{
double Values[16];
};
现在,当我想执行以下操作时...
void clsMapping::FeedJoinFeaturesFromMap(udtJoinFeatures &uJoinFeatures)
{
uJoinFeatures.Values.resize(16);
memcpy(&uJoinFeatures.Values[0], &((char*)(m_pVoiceData))[iBytePos],iByteCount);
}
。编译器告诉我"从.resize向左,需要一个类/结构/联合"。
有没有人看到我哪里出错了,我怎样才能让它工作?
谢谢!
你不能在数组上调用resize
。请改用vector
。
vector<double> Values;
但是,我不明白为什么要对数组调用 resize 以将其大小调整为相同数量的元素。
Values
的类型是内置数组。内置数组具有固定的C++大小。如果你想为数组使用变量大小,你需要使用合适的类类型,可能std::vector<double>
:
struct udtJoinFeatures
{
std::vector<double> Values = std::vector<double>(16);
};
您需要阅读有关向量的信息 - http://www.cplusplus.com/reference/vector/vector/。然后使用
typedef std::vector<double> udtJoinFeatures;
void clsMapping::FeedJoinFeaturesFromMap(udtJoinFeatures &x) {
x.clear();
x.resize(m_pVoiceData.size());
x = m_pVoiceData;
}
不能在数组上调用方法 resize
。
我建议你使用像std::vector
这样的容器,它允许你这样做:
std::vector<double> Values;
相关文章:
- 如何循环打印顶点结构
- 通过方法访问结构
- 为char数组调整zlib-zpipe
- 使用不带参数的函数访问结构元素
- 预处理器:插入结构名称中的前一个行号
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 孤立代码块在结构中引发异常
- 有什么方法可以遍历结构吗
- 如何调整作为结构或类成员的向量的大小?
- 调整结构/字符数组的大小(以减少内存使用)
- 如何调整结构向量的大小
- 调整结构中的向量的大小
- 使用BOOST_FUSION_ADAPT_STRUCT调整结构时编译器错误
- 调整结构的矢量元素的大小 - SEGV
- 调整定义/包含生成的结构以增强::融合
- 为加速融合调整空结构
- C++:调整大小必须在类/结构/联合中
- 在矢量上使用调整大小时,矢量内部结构中的unique_ptr不会编译
- 针对不同数据类型的单一结构调整方法
- 如何调整结构元素数组的大小