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 552849
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T11:32:36+00:00 2026-05-13T11:32:36+00:00

I’m about to refactor some duplicated code. Two functions both search in a multimap

  • 0

I’m about to refactor some duplicated code. Two functions both search in a multimap using
equal_range(). In a for loop after the call to equal_range() there is a for loop that sets
an iterator to equalRange.first with the condition it != equalRange.second.

If the correct value is found, the two functions differ. What I would like to do is
to have the search function as an own help function used by the previously
mentioned two.

Making that work is not the problem. What is the problem is that I cannot figure out a way
to make it “easy” and future proof in a way that makes sense to other people using this code.
Obviously, I would like something returned from the search function.

If I were to return a boolean to indicate if the value was found in the multimap, I would
have to pass an iterator to the multimap which points out the element. I find that quite
ugly.

If an iterator was returned instead, we of course have to check that against the
boundaries back in the two functions that use the search function. We can’t check it
against multimap.end() since we use equal_range so equalRange.second doesnt have to
equal multimap.end().

Using boundary checking returnIter == checkBound(x) where checkBound(x) returns
multimap::upperbound(x) makes the checkBound(x) aware of the equal_range implementation
of the search function. Hence, if someone else were to change the search function,
the checkBound(x) might not work as expected.

My standing point here is that the users of the search function should not be concerned with how it is implemented, i.e., should not know that it uses equal_range.

What are your inputs and suggestions to this? Am I over-detailed here? How would you have implemented the search function?

Thanks

  • 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-13T11:32:36+00:00Added an answer on May 13, 2026 at 11:32 am

    Instead of an either/or decision on the return value, it sounds to me like you’d want to do what functions like map::insert do – return a std::pair<iterator, bool> to signal both the position and the success/failure of the search function.

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

Sidebar

Ask A Question

Stats

  • Questions 346k
  • Answers 346k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer We made a similar switch in our company. We went… May 14, 2026 at 6:08 am
  • Editorial Team
    Editorial Team added an answer Use clone(), or use the copy-constructor. The copy-constructor makes additional… May 14, 2026 at 6:08 am
  • Editorial Team
    Editorial Team added an answer Isn't it a problem with allocating too much memory? 110… May 14, 2026 at 6:08 am

Related Questions

I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti
I'm trying to decode HTML entries from here NYTimes.com and I cannot figure out
I want use html5's new tag to play a wav file (currently only supported
I've got a string that has curly quotes in it. I'd like to replace
In order to apply a triggered animation to all ToolTip s in my app,

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.