Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7608111
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T00:50:06+00:00 2026-05-31T00:50:06+00:00

I am currently working on a project where I have to read a text

  • 0

I am currently working on a project where I have to read a text file word by word and insert each word into a STL map, where the key is the word and the value is the number of times the word has appeared. This section of the problem makes sense to me (I populate a vector with each word and then iterate through the vector and insert each word into the map and depending if its already in the map I insert it).

The next part of the problem then asks me to print out a histogram in order, sorted by the word count. If you take a look at my code below I am using sMap.begin() and sMap.end() (I know that sMap.rbegin and rend will give the reverse of the list). The map is currently sorting my the key values. Is there a simple way to force my map to sort by the values or would I have to do some type of map copying?

        int main(){
          using namespace std;
          char* filename = "dracula.txt";
          ifstream in(filename);
          vector<string> contents;
          string tempWord;
          map<string, int> sMap;

          while(in>>tempWord)
            contents.push_back(tempWord);
          // now we have a vector with every word
          int i =0;
          for(i;i<contents.size();i++){
            // insert into the STL Map
            map<string,int>::iterator it = sMap.find(contents[i]);
            if(it==sMap.end()){
              // we just need to insert the element with an occurence of 1
              sMap.insert(map<string,int>::value_type(contents[i],1));  
            }else{
              int temp = it->second;
              sMap.erase (it);
              sMap.insert(map<string,int>::value_type(contents[i],temp+1));
            }
          }
          // now we have a filled map with all the words in the file
          // we just need to sort the map based on the occurences
          map<string,int>::iterator rit;
          for(rit=sMap.begin(); rit != sMap.end();rit++){
            cout << rit->first << ": ";
            for(int q = rit->second; q>0; q--){
              cout << "|";
            }
            cout << endl;
          }
    return EXIT_SUCCESS;
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T00:50:07+00:00Added an answer on May 31, 2026 at 12:50 am

    Create a vector of std::pair<int,string> and populate it with the contents of the map, then sort.

    Boost has some ways of creating a map that can be traversed by key or value, but I think that’s overkill in this case.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm currently working on a consumer mobile application project and have read that 40%
I'm currently working on project with Haskell, and have found myself some trouble. I'm
I have a project that I'm currently working on but it currently only supports
Hello Ruby/Rails/Merb developers! Im currently working on a web project that will have a
In the project I am currently working on, we have the need to develop
Hi Currently i am working on a rails project . where i have to
I have been working on keeping things object oriented for my project. Currently, I'm
I am currently working on a project and my goal is to locate text
i would like to have your opinion in a project i am currently working
I am currently working on a spring portlet mvc 3 project. I have a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.