Please pardon my ignorance. I'm writing a C++ STL program after not writing code for 7 years, I'm trying to invoke key_word.inc() using an iterator for a set containing key_word_T. The following is a pared down version.
Code:
#include <cstdlib>
#include <set>
#include <string>
using namespace std;
class key_word
{
public:
string word (void) const { return (wordX); }
void inc (void) { ++countX; }
private:
string wordX;
int countX;
}; /* class key_word */
typedef class key_word key_word_T;
class key_word_sort
{
public:
bool operator () (const key_word_T& leftA, const key_word_T& rightA) const
{
return (leftA.word() < rightA.word());
} /* operator () */
}; /* class key_word_sort */
typedef class key_word_sort key_word_sort_T;
set <key_word_T, key_word_sort_T> global_keys; // all keywords
set <key_word_T, key_word_sort_T> local_keys; // this document's keywords
pair<set<key_word_T, key_word_sort_T>::iterator, bool> global_result;
pair<set<key_word_T, key_word_sort_T>::iterator, bool> local_result;
set<key_word_T, key_word_sort_T>::iterator global_itor;
set<key_word_T, key_word_sort_T>::iterator local_itor;
string one_word;
int main (int, char**)
{
one_word = "$FOOBAR";
global_result = global_keys.insert (one_word); // compiles in full code, not in example
key_word_T local_key(*global_result.first);
local_result = local_keys.insert (local_key);
global_itor = global_result.first;
(*global_itor).inc(); // want to invoke key_word.inc() on global_keys copy
return (EXIT_SUCCESS);
} /* main () */
Comment