stl

How can i sort a map by its .second parameter

If i have a stl map from string to int and i want to print all the int values sorted - how can i do that? ...

C++ std::equal -- rationale behind not testing for the 2 ranges having equal size?

I just wrote some code to test the behavior of std::equal, and came away surprised: int main() { try { std::list<int> lst1; std::list<int> lst2; if(!std::equal(lst1.begin(), lst1.end(), lst2.begin())) throw std::logic_error("Error: 2 empty lists should always be equal"); lst2.push_back(5); if(std::equal(...

Why can't we have an immutable version of operator[] for map

The following code works fine : std::map<int, int>& m = std::map<int, int>(); int i = m[0]; But not the following code : // error C2678: binary '[' : no operator... const std::map<int, int>& m = std::map<int, int>(); int i = m[0]; Most of the time, I prefer to make most of my stuff to become immutable, due to reason : http://www.j...

C++ equivalent of StringBuffer/StringBuilder?

Is there a C++ Standard Template Library class that provides efficient string concatenation functionality, similar to C#'s StringBuilder or Java's StringBuffer? ...

printing stl containers with gdb 7.0

I have installed GDB 7.0 and python per the following instructions. In the same manual, there is a mention of this file stl-views-1.0.3.gdb. What confuses me is where it should be placed in order to enable pretty printing of stl containers. Would someone also explain to me all of this work? Thanks ...

How would I use for_each to delete every value in an STL map?

Suppose I have a STL map where the values are pointers, and I want to delete them all. How would I represent the following code, but making use of std::for_each? I'm happy for solutions to use Boost. for( stdext::hash_map<int, Foo *>::iterator ir = myMap.begin(); ir != myMap.end(); ++ir ) { delete ir->second; // delete all t...

Sort CMap Key by String Length

Previously, I am using STL map to perform the mentioned task. struct ltstr { bool operator()(std::string s1, std::string s2) const { const int l1 = s1.length(); const int l2 = s2.length(); if (l1 == l2) { // In alphabetical order. return s1.compare(s2) < 0; } // From longest leng...

Is there any c++ class that can't be used in STL?

Just come up with this question. Any hint? ...

C++/STL string: How to mimic regex like function with wildcards ?

Hello, I would like to compare 4 character string using wildcards. For example: std::string wildcards[]= {"H? ", "RH? ", "H[0-5] "}; /*in the last one I need to check if string is "H0 ",..., and "H5 " */ Is it possible to manage to realize only by STL? Thanks, Arman. EDIT: Can we do it without boost.regex? Or should I add y...

functor returning 0

I've recently started teaching myself the standard template library. I was curious as to why the GetTotal() method in this class is returning 0? ... class Count { public: Count() : total(0){} void operator() (int val){ total += val;} int GetTotal() { return total;} private: int total; }; void main() { set<int> s; ...

C++/STL: std::transform with given stride?

Hello, I have a 1d array containing Nd data, I would like to effectively traverse on it with std::transform or std::for_each. unigned int nelems; unsigned int stride=3;// we are going to have 3D points float *pP;// this will keep xyzxyzxyz... Load(pP); std::transform(pP, pP+nelems, strMover<float>(pP, stride));//How to define the strMov...

std::map and behavior of already inserted data

Does std::map move around already inserted values when inserting new data ? ...

Function in c++ for finding if a word is prefix

Let say i have some words AB, AAB, AA. AB is not a prefix to AAB but AA is a prefix to AAB because if i just add B at the end of AA it will become AAB, which is not possible with AB. So, is there any function in c++ (STL) so that i can determine of two words if one is prefix to the another ? Thanks. ...

STL Vectors, pointers and classes

Hey! Let's say i have 2 classes: class Class1 { public: std::vector<CustomClass3*> mVec; public: Class1(); ~Class1() { //iterate over all the members of the vector and delete the objects } }; class InitializerClass2 { private: Class1 * mPtrToClass1; public: InitializerClass2(); void Initialize() { mPtrToClass...

Some questions about Vector in STL

I have some questions about vector in STL to clarify..... Where are the objects in vector allocated? heap? does vector have boundary check? If the index out of the boundary, what error will happen? Why array is faster than vector? Is there any case in which vector is not applicable but array is a must? ...

why no += operator for vectors in stl

I am curious? What high fundu logic goes behind not implementing: result+=vector1; where both result and vector1 are stl vectors. Note: i know how to implement that bit, but i need to know what logic, the sages who designed STL were using when they chose not to implement this feature? ...

how to view contents of STL containers using GDB 7.x

I have been using the macro solution, as it is outlined here. However, there is a mention on how to view them without macros. I am referring to GDB version 7 and above. Would someone illustrate how? Thanks ...

cstring replacement on OS X?

I have old code that uses size_t which IIRC comes from cstring.h. On OS X, I either dont know how to find/use this or it is not available. What would I replace it with? ...

Storing objects in STL vector - minimal set of methods

Hello What is "minimal framework" (necessary methods) of object, which I will store in STL <vector>? For my assumptions: #include <vector> #include <cstring> using namespace std; class Doit { private: char *a; public: Doit(){a=(char*)malloc(10);} ~Doit(){free(a);} }; int main(){ vector<Doit> v(10);...

Possible: Set Operations on Disparate Maps with Same Key Type?

Let's say I have two maps: typedef int Id; std::map<Id, std::string> idToStringMap; std::map<Id, double> idToDoubleMap; And let's say I would like to do a set operation on the keys of the two maps. Is there an easier way to do this than to create a custom "inserter" iterator? such that I could do something like: std::set<Id> res...