帮忙看下哪儿错了 non-aggregates cannot be initialized with initializer list

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:18:56
VC6.0 编译出错

#ifndef WAVELET_H
#define WAVELET_H

#include <vector>

namespace Wavelet{
using std::vector;
struct C_L
{
vector<double> C;
vector<int> L;
};
struct WaveFilter{
vector<double> Low;
vector<double> High;
};
struct WaveCoeff{
vector<double> app;
vector<double> det;
};
const double sym4_Lo_D[] = {-0.0758, -0.0296, 0.4976, 0.8037, 0.2979, -0.0992, -0.0126, 0.0322};
const double sym4_Hi_D[] = {-0.0322, -0.0126, 0.0992, 0.2979, -0.8037, 0.4976, 0.0296, -0.0758};
const double sym4_Lo_R[] = {0.0322, -0.0126, -0.0992, 0.2979, 0.8037, 0.4976, -0.0296, -0.0758};
const double sym4_Hi_R[] = {-0.0758, 0.0296, 0.4976, -0.8037, 0.2979, 0.0992, -0.0126, -0.0322};

const static WaveFilter sym4_d = {vector<double>

把静态的去掉 不行再把const去掉
你给的是头文件我没办法调试

晕,也不给点错误提示。又没有格式。

const static WaveFilter sym4_d = {vector<double>(sym4_Lo_D, sym4_Lo_D + 8), vector<double>(sym4_Hi_D, sym4_Hi_D + 8)};//这两行报错
const static WaveFilter sym4_r = {vector<double>(sym4_Lo_R, sym4_Lo_R + 8), vector<double>(sym4_Hi_R, sym4_Hi_R + 8)};//

vector 没有这样的构造函数。可以使用一个static函数来执行const的初始化。
const vector的变量可以添加删除项目的。