h5pp
2022-05-09
hdf5 포맷 r/w 용으로 나온 표준 libhdf5 를 사용하면 코딩량이 많을수밖에 없다..
찾아보니 h5pp 라는 라이브러리가 있길래 테스트해봄.
https://github.com/DavidAce/h5pp
짧은 코드로 되고.. 백터도 지원하고 좋은것 같음.
#include <h5pp/h5pp.h> typedef struct { unsigned int id; float x, y, z; } T_NODE; int main(int argc, char *argv[]) { //h5pp::File file("test.h5", h5pp::FileAccess::REPLACE, 0); h5pp::File file("test.h5", h5pp::FileAccess::REPLACE); h5pp::hid::h5t T = H5Tcreate(H5T_COMPOUND, sizeof(T_NODE)); H5Tinsert(T, "id", HOFFSET(T_NODE, id), H5T_NATIVE_INT); H5Tinsert(T, "x", HOFFSET(T_NODE, x), H5T_NATIVE_FLOAT); H5Tinsert(T, "y", HOFFSET(T_NODE, y), H5T_NATIVE_FLOAT); H5Tinsert(T, "z", HOFFSET(T_NODE, z), H5T_NATIVE_FLOAT); std::vector<T_NODE> nodes; T_NODE node; node.id = 1; node.x = 1.0; node.y = 1.0; node.z = 1.0; nodes.push_back(node); nodes.push_back(node); nodes.push_back(node); nodes.push_back(node); nodes.push_back(node); file.writeDataset(nodes, "/nodes", T); std::vector<std::string> lines; lines.push_back("this is a vector"); lines.push_back("of strings"); lines.push_back("of varying lengths"); file.writeDataset(lines, "/lines"); return 0; }
Categorized as: Programming
답글 남기기