I have a very complex data structure with pointers to various parts of the memory. It takes a while to build and I would like to save the "memory" used by that structure to the disk. Then, when the program is launched again, it would just memory map the file and I could use it. Is there any way to do this ?
saving data structure c++ to disk
2.9k Views Asked by madreblu At
3
There are 3 best solutions below
2
AudioBubble
On
boost::serialization could do it. Note: write the archive version first and then do register_types
0
Jan Herrmann
On
You could start with Boost.Interprocess and use memory maped files. Your data structure will look a litle differnt (pointers are smart pointers, references forbidden, no virtual functions). But it should be manageable. At least all types you use needs to be constructable in shared memory. Some are (Boost.Container) and some are not (Boost.Any, Boost.Variant).
Related Questions in C++
- C++ using std::vector across boundaries
- Linked list without struct
- Connecting Signal QML to C++ (Qt5)
- how to get the reference of struct soap inherited in C++ Proxy/Service class
- Why we can't assign value to pointer
- Conversion of objects in c++
- shared_ptr: "is not a type" error
- C++ template using pointer and non pointer arguments in a QVector
- C++ SFML 2.2 vectors
- Lifetime of temporary objects
- I want to be able to use 4 different variables in a select statement in c ++
- segmentation fault: 11, extracting data in vector
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- How can I print all the values in this linked list inside a hash table?
- Configured TTL for A record(s) backing CNAME records
Related Questions in C
- Passing arguments to main in C using Eclipse
- kernel module does not print packet info
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Drawing with ncurses, sockets and fork
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- Configured TTL for A record(s) backing CNAME records
- Allocating memory for pointers inside structures in functions
- Finding articulation point of undirected graph by DFS
- C first fgets() is being skipped while the second runs
- C std library don't appear to be linked in object file
- gcc static library compilation
- How to do a case-insensitive string comparison?
- C programming: Create and write 2D array of files as function
- How to read a file then store to array and then print?
- Function timeouts in C and thread
Related Questions in DATA-STRUCTURES
- Borrow mutable and immutable reference in the same block
- Why would one use a heap over a self balancing binary search tree?
- Reverse linked list in java
- Doubly Linked List, MergeSort, getting undefined and unreliable results
- Difference in performance of adding elements in Treeset directly vs transferring from arraylist?
- Why the leaf node in red black tree is NIL?
- When to use double pointers?
- find the biggest possible number comprised of the digits of of a given number
- Data structure to efficiently merge up to n elements of multiset
- How to convert a string to a key for hash table
- Implement queues in java
- What does it mean to "close over" something?
- How to use hash tables when amount of slots is unknown?
- Unknown Data Structure?
- how to find type of connection between the social network entities
Related Questions in SAVE
- Trying to save an np array with string and floats, but getting a error
- saving matlab file (.mat) with dynamic name
- Saving Data form in CakePHP
- Python - Pickle init takes 4 arguments - 1 given
- Losing values after reading from file and saving np array to the same file
- Android: Intentionally Blank Lines in EditText Are Not Getting Saved
- How to save cell value(image) of a vertical grid control (devexpress) to sql database?
- Open in same view controller as closed on (swift)
- MvvmCross on iOS - Strategies for Saving and Restoring State
- How to make a save button
- C# - Settings.Default.Save() is very slow
- Saving text in labels
- Python: Can you Save an Object and all of it's Associated Values?
- Implementing both Serializable and Parcelable interfaces from an object in Android - conflict
- Disable Excel save option but allow macro save
Related Questions in STATE-SAVING
- JQuery1.8 Datatables saving state on click of a button
- Need help making Swift Cookie Clicker Game Automatically Save
- A program resistent to power/hardware/OS failures
- iOS Autosaved object
- saving data structure c++ to disk
- java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at com.sun.faces.renderkit.ServerSideStateHelper.getState
- JSF composite component - weird behavior when trying to save state
- State saving, navigation controller stack saving and gesture recognizer on the navigation bar
- UIViewController persistence - save state into memory and write it to the disk when the app is terminated
- How many state information is saved when client mode
- React.js, correct way to iterate inside DOM
- Android studio saving data that extends Button
- ios restore state for google maps sdk GMSMapsView
- How to avoid sharing of values stored in StateHelper of composite components placed inside PrimeFaces datatable?
- jquery datatable - state save not working for first time
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
It can be done, yes, but you need to be aware of how the structure is actually stored in memory, and how that changes on various platforms (alignment, packing, byte-ordering, primitive type sizes, etc.). Additionally, it would be prudent to change your "pointers to various parts" into "offsets to various parts" since actual memory locations will change between process uses.
example, writing an object like this to disk should be fairly portable:
but one like this would be very problematic: