error C4996: ‘arma::Col<double>::operator <<‘: use braced initialiser list instead

       

         armadillo 库在编译的时候依赖C++11,VS2022默认已经支持的C++14,但C++14默认不支持<<运算符初始化mat矩阵,C++14以上的标准也会报错,都不支持这种方式了。

        所以解决这个问题两个思路:

  1. 安装支持C++11版本的vs
  2. 修改不支持的语法

第一个解决办法不需要说,安装编译就行。第二个语法如果能看懂错误提示,其实也很容易,就用是{}的形式初始化mat代替<<操作符。

double dd = 0.;

mat a = {dd};

a = colvec({dd});

vec X;

X<<1<<endr<<0<<endr<<0<<endr; 

X = {{1}, {0}, {0}};

 mat tilde(3,3);
    tilde<<0.<<-z<<y<<endr<<z<<0.<<-x<<endr<<-y<<x<<0.<<endr;

tilde = {{0., -z, y}, {z, 0., -x}, {-y, x, 0.}}; 

或者可以用

tilde = rama::colvec({{0., -z, y}, {z, 0., -x}, {-y, x, 0.}});

参考文章:

https://gitlab.com/conradsnicta/armadillo-code/-/issues/168

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老朱自强不息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值