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

  • Home
  • SEARCH
  • 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 186901
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T15:43:43+00:00 2026-05-11T15:43:43+00:00

Ok, someone tell me which would be better. I need to |= the elements

  • 0

Ok, someone tell me which would be better. I need to |= the elements of one vector with another. That is, I want to

void orTogether(vector<char>& v1, const vector<char>& v2) {     typedef vector<char>::iterator iter;     for (iter i = v1.begin(), iter j = v2.begin() ; i != v1.end(); ++i, ++j)         *i |= *j; } 

I can’t use for_each due to needing to process 2 collections. I suppose I could do something like

struct BitWiseOr {     char operator()(const char& a, const char& b) {return a | b;} };  void orTogether2(vector<char>& v1, const vector<char>& v2) {     transform(v1.begin(), v1.end(), v2.begin(),          v1.begin(), BitwiseOr()); } 

Is this a more efficient solution even though the top one is in place, but the bottom is an assign? This is right in the middle of a processing loop and I need the fastest code possible.

Edit: Added (obvious?) code for BitwiseOr. Also, I’m getting a lot of comments on non-related things like checking the lengths of v2 and changing the names. This is just an example, the real code is more complicated.

Well, I profiled both. orTogether2 is much faster than orTogether, so I’ll be going with the transform method. I was surprised, orTogether2 was about 4 times faster in MSVC9 release mode. I ran it twice, changing the order the second time to make sure it wasn’t some sort of cache issue, but same results. Thanks for the help everyone.

  • 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. 2026-05-11T15:43:43+00:00Added an answer on May 11, 2026 at 3:43 pm

    The bottom one will compile to effectively the same as the first, your OR functor is going to be inlined for sure. So the second idiom is more flexible if you ever need to add more flexibility or debugging frameworks or whatever.

    Since there’s no benefit to the first, use the transform method. Once you get into that habit you’ll stop even considering the explicit loop choice for all your apps since it’s unnecessary. The only advantage to the first method is it’s easier to explain to beginner C++ programmers who are more comfortable with raw C.

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

Sidebar

Ask A Question

Stats

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

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

    • 7 Answers
  • Editorial Team

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

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer If you mean "how do I get Visual Studio to… May 11, 2026 at 10:01 pm
  • Editorial Team
    Editorial Team added an answer How about something like this? <!-- Your base enumeration -->… May 11, 2026 at 10:01 pm
  • Editorial Team
    Editorial Team added an answer You might find this to be useful. May 11, 2026 at 10:01 pm

Related Questions

I am running a Tomcat application, and I need to display some time values.
OK, having tried my first TDD attempt, it's time to reflect a little and
I'm kind of interested in getting some feedback about this technique I picked up
Ok, so that title probably doesn't explain my question well. Hopefully this makes sense.
Ok! I'm ready to embark on some .NET development for the first time. I've

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.