STL map


 
Thread Tools Search this Thread
Top Forums Programming STL map
# 1  
Old 11-24-2007
STL map

Hi there,

I am using the STL map and I print the map using:

map <string, float> ngram_token_index ;
map <string, float>::iterator map_iter ;

//read the map
...

// print the map
for ( map_iter = ngram_token_index.begin() ; map_iter != ngram_token_index.end() ; map_iter++ )
cout << map_iter->first << " => " << map_iter->second << endl;

While this works, I want to copy the value in map_iter->first to a string variable.

The code
char str[1024] ;
strcpy(str, map_iter->first) ;
gives the following error:
error: cannot convert 'const std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to 'const char*' for argument '2' to 'char* strcpy(char*, const char*)'

I am new to STL. Any help would be greatly appreciated.

Thanks,
J.
# 2  
Old 11-25-2007
That is because what the map actually returned is an STL "string" object rather than a char array.

Try to call c_str() on the "basic_string" you received from the map to get the underlying char pointer before you do the strcpy.

basic_string<charT, traits, Alloc>

Or, you can use STL "string" exclusively instead of using char*. C++ programmers usually prefer to use string objects instead of mixing string and char* anyway.
# 3  
Old 11-25-2007
Hi cbkihong

Thanks a lot. c_str worked for me.

J.
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. Programming

STL transform question

Hi all, I pass to the transform algorithm two vectors, and the suma function. #include <algorithm> #include <iostream> #include <iterator> #include <vector> using namespace std; class Duo{ public: int one; int two; }; Duo suma(Duo first, Duo last){ Duo ret; ... (1 Reply)
Discussion started by: santiagorf
1 Replies

2. Programming

how to check the value in stl container during debug

Hi, guys. I am working on a project right now. But when I debug my code, I can't see the values in stl container, e.g vector, map. Can anyone help me, please. I am really frustrated:wall:. I am using code::blocks IDE, by the way. Thanks in advance...... (0 Replies)
Discussion started by: tefino
0 Replies

3. Programming

c++ code to print a tree using stl map

hi all, i need c++ code to print a binary or non binary tree using stl map.... please help me to find the same.......... (1 Reply)
Discussion started by: vidyaj
1 Replies

4. Programming

which stl is best suited to represent a tree

hi all i have a tree structure: root --- node 1 to node 10 in each node --- sub node 1 to sub node 10 in each sub node --- leaf node 1 to leaf node 10 i have to print this in following fashion: root ---- n1 ---- sn1 ---- l1, l2, l3, ....., l10 n1 ---- sn2 ---- l1, l2, l3,... (2 Replies)
Discussion started by: vidyaj
2 Replies

5. Programming

stl map - could any one explain the o/p

class tst { public: tst() { cout<<"ctor tst()\n"; } tst(const tst& ob) { cout<<"cp ctor tst()\n"; } ~tst() { cout<<"dtor tst()\n"; } }; map<string,tst> mp; int main(void) { mp; //mp=tst(); } (1 Reply)
Discussion started by: johnbach
1 Replies

6. UNIX for Dummies Questions & Answers

c++ stl which rpm?

Hello, I'm using RHEL 5.3, I need to compile C++ code and I'd like to know which rpm contains the STL library. Thanks:) (3 Replies)
Discussion started by: pppswing
3 Replies

7. Programming

STL from win

Help me please with STL source code that works on Windows I've found on Inet STL MRU Cache (it compiles fine with Studio 2008), but when trying to build it with Kdevelop (g++ is the compiler) I've got a series of error. One of them I've placed in the source code. If it's important I can post here... (0 Replies)
Discussion started by: Orlando_ua
0 Replies
Login or Register to Ask a Question