C ++は、numpyのバイナリ配列として保存読み取り

C ++とPython対応する変数のタイプの精度を決定するための最初の必要性、
https://docs.scipy.org/doc/numpy/user/basics.types.html#array-types-and-conversions-between-types

一般的に、
C ++ int対応するPythonのnp.intc
C ++ float対応するPythonのnp.single
C ++ double対応のPythonnp.double

保存numpyの配列はバイナリファイルであります

import numpy as np
a = np.array([[1.888,2.8888,3.88888],[4.666,5.6666,6.66666]])
a = a.astype(np.double)
a.astype('double').tofile("varr.data")

バイナリファイルを読み込むためのC ++

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
  double fnum[2][3] = {0};

  ifstream in("varr.data", ios::in | ios::binary);
  in.read((char *) &fnum, sizeof fnum);

  // see how many bytes have been read
  cout << in.gcount() << " bytes read\n";

  for(int j=0; j<3; j++) // show values read from file
  cout << fnum[0][j] << " ";

  in.close();

  return 0;
}

場合など、誤ったデータ型の対応関係、a.astype('double').tofile("varr.data")変更a.astype('float.tofile(「varr.dataが」) `) 、 C ++配列は、もはや元の配列に読み取られます。特別な注意が必要です。

おすすめ

転載: www.cnblogs.com/yaos/p/12105108.html