I came across this term exception safe of containers. I want to understand what exactly exception safe mean? Are there are any comparison for this for different containers ?
Exception safe of containers in c++
129 Views Asked by Barry At
1
There are 1 best solutions below
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++11
- C++ using std::vector across boundaries
- Using QPointer and QObject::connect with C++11
- Using std::vector<> and std::shared_ptr<> should cause error
- invoking function for each variadic template arguments and passing the result as constructor arguments
- Different behavior of async with Visual Studio 2013(Windows8.1) and GCC 4.9(Ubuntu14.10)
- Whether to use T const& or T&&
- C++ IRC Bot Buffer Error
- Downcast from a container of Base* to Derived* without explicit conversion
- Assigning values in a vector in non-sequential order
- Can I use C++11 list-initializer syntax for vectors with variables?
- is it fine to use auto keyword in function parameter?
- Variadic template method and std::function - compilation error
- Clustering on Graph (using Boost Graph Library)
- libc++ difference between vector::insert overloads
- Cannot convert argument1 to const char
Related Questions in EXCEPTION
- Python twisted not catching exception
- Proper use of custom exceptions
- C++ Mongodb driver, not working
- C# console application - Unhandled exception while finding the Available and free Ram space.Getting exact answer in windows forms application
- Hashing String (SHA-256) in an ActionListener class
- Do we have to mention exception type in java?
- How can I make Eclipse (or javac) warn about over-inclusive throws clauses
- Why can an Exception not be rethrown in the BackgroundWorker RunWorkerCompleted event
- How can I set the the expected Exception type for a catch statement with a parameter I've passed into a method?
- Why do I get an IndexOutOfBoundsException when my else should prevent it?
- crypto.BadPaddingException: data hash wrong (EKYC-Response)
- How to print the first line from a traceback stack
- java.lang.ArrayIndexOutOfBoundsException object array
- Passing keyword arguments to custom exceptions - anomaly
- Unauthorised access to folders when creating xml file
Related Questions in EXCEPTION-SAFETY
- Exception safety C++ shared pointer
- Is this item from Effective Modern C++ still up to date?
- What can (and should) I do if Drop panics? Can I free other resources anyway?
- state of std::vector after std::bad_alloc
- Should I write the end of the file in the destructor?
- Ensure that an object is not null
- Exception safety of new operator
- Create a XML-File in an exception safe and memory friendly way?
- Where can I find all the exception guarantees for the Standard Containers and Algorithms?
- Is uninitialized_copy() exception-safe?
- What is wrong with "checking for self-assignment" and what does it mean?
- Idiom for exception safety relating to constructor parameters
- How is std::atomic<T>::operator= implemented for immutable types?
- Exception safety in the composite pattern
- Should private function members be exception safe?
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?
If you look at the algorithms for various data structures, you can see that they involve a sequence of steps. The data structure has some integrity (consistent internal meaning) at the beginning of the steps and at the end.
For example, consider
vector, which involves a dynamically growing array. This usually involves an array, an integer describing the size of the array, and an integer describing the number of used elements. When an element is inserted, a new array of twice the size might be allocated, elements copied to the new one, the integer describing the size will be multiplied by two, the integer describing the number of used elements will be increased by 1, etc.An exception thrown at this point (e.g., by the copy constructor of the elements), can lead to the sequence of steps to be terminated in the middle. E.g., if you carelessly first update the integers, only then do the allocation and copies (and don't catch exceptions), then the data structure will lose its internal consistency.
The meaning of exception safety for STL containers, is that they have guarantees that such terminations will leave the data structure in a consistent state.