A std::vector<float> will look something like this in memory:
vector<float> {
float* buf;
size_t size;
size_t capactiy;
};
So that's what is getting written by your code. The data you actually want
to write is where the 'buf' pointer points (which is what vector::data()
returns).
If you want to put an array of data into a struct you can use
std::array<float> but that will have fixed size. There is no way to put a
dynamically sized array into a struct.
On Tue, May 3, 2016 at 12:48 AM, shamkumar rajput <
[email protected]> wrote:
> Hi Guys,
>
>
>
> I am able write STL datatype using .data() function. Example
> vector.data().
>
> But, That datatype is part of some compound datatype then I am not able to
> write exact values(It writes some Garbage Values)
>
>
>
> I have simplified my problem can anyone please take look on that …
>
>
>
>
>
> Here Is my Data Structure
>
>
>
> struct RandomData
>
> {
>
> std::vector<float> values;
>
> };
>
>
>
>
>
> I am using HDF5 CPP library for writing above data structure to HDF file.
> I am able write file but It’s writes some “Garbage Values”.
>
>
>
>
>
> Here Is code …
>
>
>
> #include "H5Cpp.h"
>
> #include <vector>
>
> using namespace std;
>
> using namespace H5;
>
>
>
>
>
>
>
> void main()
>
> {
>
> try
>
> {
>
> struct RandomData
>
> {
>
> std::vector<float> values;
>
> };
>
> RandomData d;
>
> d.values.push_back(10);
>
> d.values.push_back(20);
>
> d.values.push_back(30);
>
>
>
> //write Dataset to File
>
> H5File file("file.h5",H5F_ACC_TRUNC);
>
> Group group = file.createGroup("group");
>
> int rank = 1;
>
> hsize_t dimesion [] = {1};
>
> DataSpace space(rank,dimesion);
>
> CompType comptype(sizeof(RandomData));
>
>
>
> comptype.insertMember("x"
> ,HOFFSET(RandomData,values),H5::PredType::NATIVE_FLOAT);
>
>
>
> DataSet dataset = group.createDataSet("r1",comptype,space);
>
> dataset.write(&d,comptype);
>
>
>
> space.close();
>
> dataset.close();
>
> group.close();
>
> file.close();
>
> }
>
> catch(FileIException error)
>
> {
>
> error.printError();
>
> }
>
> }
>
>
>
>
>
>
>
> Am I missing something over here? If not then please guide me on
> alternative solution .It’s very helpful for me.
>
>
>
>
>
> Regards,
>
> Shamkumar
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5
>
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5