我正在使用可从http://eigen.tuxfamily.org/下载的Eigen C++库.这是一个C++库,可以更轻松地处理矩阵和数组.我使用g ++编译器和gdb进行调试.但是,我发现在使用gdb时我无法打印Matrix的内容(由Eigen提供).
我发现使用 Matlab 'fread' 和 'int24' 选项读取以 24 位整数格式打包的数据需要花费大量时间。我发现,如果我读取“int32”或“int16”或“int8”中的数据,则读取时间比“int24”要快得多。有没有更好的方法来减少读取24位整数数据的时间?
为了了解这个问题,下面给出了示例代码。
clear all; close all; clc;
% generate some data and write it as a binary file
n=10000000;
x=randn(n,1);
fp=fopen('file1.bin', 'w');
fwrite(fp, x);
fclose(fp);
% read data in 24-bit format and measure the time
% please note that the data we get here will be different from 'x'.
% The sole purpose of the code is to demonstrate the delay in reading
% 'int24'
tic;
fp=fopen('file1.bin', 'r');
y1=fread(fp, n, 'int24');
fclose(fp);
toc; …Run Code Online (Sandbox Code Playgroud) 请考虑以下示例.
class Parent
{
public:
Child createChild();
// some member data and functions can go here.
}
class Child: public Parent
{
// some member data and functions can go here.
}
Run Code Online (Sandbox Code Playgroud)
我想只允许通过Parent类中提供的方法创建"Child"类.这就是我想拒绝用户实例化Child类对象的选项.我还想避免使用Child类的所有其他默认构造.这怎么可能?
Parent p;
Child c = p.createChild(); // should be possible
Child d; //should not be allowed
Child e = c; // may be allowed
Run Code Online (Sandbox Code Playgroud)