stl

Obtain minimum NEGATIVE float value in C++

I was looking at std::numeric_limits<float>::min/max() but it appears 'min()' returns the smallest absolute value, not the lowest value. Is it safe to use -std::numeric_limits<float>::max(), i.e is float symmetric in min/max limits? ...

stl predicate with different types

I have a vector of ordered container classes where I need to know the index of the container that has a given element so, I would like to do the following, but this obviously doesn't work. I could create a dummy Container to house the date to find, but I was wondering if there was a nicer way. struct FooAccDateComp { bool operator(...

c++ is_str_empty predicate

std::vector<std::wstring> lines; typedef std::vector<std::wstring>::iterator iterator_t; iterator_t eventLine = std::find_if(lines.begin(), lines.end(), !is_str_empty()); how do I define is_str_empty? i don't believe boost supplies it. ...

Why does the standard library have find and find_if?

Couldn't find_if just be an overload of find? That's how std::binary_search and friends do it... ...

Fastest type for std::map key?

I would like to use the partitions of a graph as the key to a std::map I could represent this as a std vector of nodes. Or I could convert it into a more compact 'custom' binary format (bitset?), or a string representation. For simplicitiy's sake, we can say there is no inherent order to partitions of a graph. Which will be fastest i...

Nested STL vector using way too much memory

I have an STL vector My_Partition_Vector of Partition objects, defined as struct Partition // the event log data structure { int key; std::vector<std::vector<char> > partitions; float modularity; }; The actual nested structure of Partition.partitions varies from object to object but in the total number of chars stored in P...

STL set of map iterators

I have an stl unordered_map and I would like to store references to elements in that map. I would like there to be no duplicate references. I thought I could create an set of iterators which pointed to elements. For one I wasn't sure that it would recognise , but even so I got some long template errors which I think boiled down to the...

Can't insert element into nested stl set of ints

I have a nested set of ints but I cannot insert elements into the nested sets. std::set<std::set<int> > centre_as_set = bitset_to_set(centre->second->bit_partitions); std::set<std::set<int> >::iterator set_itr; for ( set_itr = centre_as_set.begin(); set_itr != centre_as_set.end(); ++set_itr ) { set_itr->insert(4); std::set<int>:...

Lifecycle of objects passed by reference to STL containers

I'm an experienced coder, but am still relatively new to the STL, and have just come across this problem: As far as I'm aware, STL containers aren't meant to copy the objects which they contain, or otherwise affect their lifecycles, yet experimentally I'm seeing different results. In particular, string classes, which are meant to zero ...

How to iterate through map, modify map but restore at each iteration?

I have a std::map<int,int> lets call it my_map I iterate through this map using iterators and a for loop. Within each iteration I want to modify many elements in this map but restore it again to its original values for next iteration of the loop. I thought I could create a temporary copy of the iterator my_temp_map , but then I wouldn...

Why this thread safe queue, creates a deadlock?

I've written my own version of thread safe queue. However, when I run this program, it hangs/deadlocks itself. Wondering, why is this locks/hangs forever. void concurrentqueue::addtoQueue(const int number) { locker currentlock(lock_for_queue); numberlist.push(number); pthread_cond_signal(&queue_availability_condition); } i...

stl container end is redundant after find, so what is the shortcut

Let us assume we have a map class (unordered map, list, set, whatever will also do). We are looking for a specific element. After calling the find() member, we have to check with the end() member. But find() internally already knows whether it is returning a good iterator or the end iterator. Why should we need to call end() again? This ...

STL algorithm all or any function?

Is there anything approximating Haskell's all or any functions as part of the STL? If not, is the below a good implementation (I noticed the sgi STL performed partial specialization if the iterators were random access, though I have not bothered with this)? template <typename InputIterator, typename Predicate> inline bool all(InputIter...

How should a size-limited stl-like container be implemented?

While refactoring, I wanted to change an array where entries are added to an std::vector, but for compatibility (persistency, downgrading,...), it still needs to have an upper limit. What is the best way (elegant, stl-like, limited extra code) to have an stl-like container which is limited in size, so you know that inserting an entry fai...

STL library function to partition an interval

Hi, I'd like to partition an interval such as [-1.0, 1.0] into a discrete set of equally spaced points with a specified distance or step-size between each point. For example if the step-size is 0.1 my function would return an array: -1.0, -0.9, -0.8,...., 0.9, 1.0. Now a way of doing using a vector container is a follows: vector...

How to make tr1::array allocate aligned memory?

You can allocate a std::vector which allocates aligned heap memory by defining your own allocator. You can allocate a c-style array on the stack using declspec align. But can you declare a tr1::array which guarantees that the element at index zero will be aligned? ...

A thread-safe vector and string container?

I posted a previous question "Seg Fault when using std::string on an embedded Linux platform" where I got some very useful advise. I have been away on other projects since then and have recently returned to looking at this issue. To reiterate, I am restricted to using the arm-linux cross compiler (version 2.95.2) as this is what is supp...

Is there "magic" in the STL?

Let me start with explaining what I mean with "magic". I will use two examples from Java: Every class inherits (directly or indirectly) the Object class. Operator overloading is not supported by Java but the + operator is defined for String objects. This means that it is impossible to make an implementation of the Object and String c...

Output binary buffer with STL

I'm trying to use something that could best be described as a binary output queue. In short, one thread will fill a queue with binary data and another will pop this data from the queue, sending it to a client socket. What's the best way to do this with STL? I'm looking for something like std::queue but for many items at a time. Thanks ...

Custom allocator for std::vector<> with release?

I am working with a 3rd party C API set in C++ that has two methods of concern for this discussion: It's equivalent of malloc(): the_api_malloc(size) (plus a matching the_api_free()) A function in which memory created with the_api_malloc() is returned to that takes ownership of it and the_api_free()'s it internally: the_api_give_back(p...