Cyber Monday 2024! Hurry Up, Grab the Special Discount - Save 25% - Ends In 00:00:00 Coupon code: SAVE25
Welcome to Pass4Success

- Free Preparation Discussions

C++ Institute Exam CPP Topic 7 Question 84 Discussion

Actual exam question for C++ Institute's CPP exam
Question #: 84
Topic #: 7
[All CPP Questions]

What happens when you attempt to compile and run the following code?

#include

#include

#include

#include

using namespace std;

class B { int val;

public:

B(int v=0):val(v){}

int getV() const {return val;}

B operator +(const B &b )const { return B(val + b.val);} };

ostream & operator <<(ostream & out, const B & v) { out<

templatestruct Out {

ostream & out;

Out(ostream & o): out(o){}

void operator() (const T & val ) { out<

template struct Add : public binary_function {

A operator() (const A & a, const A & b) const { return a+b; }};

int main() {

int t[]={1,2,3,4,5,6,7,8,9,10};

vector v1(t, t+10);

vector v2(10);

transform(v1.begin(), v1.end(), v2.begin(), bind1st(ptr_fun (Add()), 1));

for_each(v2.rbegin(), v2.rend(), Out(cout));cout<

return 0;

}

Program outputs:

Show Suggested Answer Hide Answer
Suggested Answer: E

Contribute your Thoughts:

Hollis
6 months ago
No way, it's B. `for_each` prints backwards but values start at 2.
upvoted 0 times
...
Amber
6 months ago
Wait, but shouldn't it be reverse order? Maybe C?
upvoted 0 times
...
Maurine
7 months ago
Hmm, I see your point. The `bind1st` with 1, right?
upvoted 0 times
...
Georgeanna
7 months ago
I disagree. The result should be B, from 2 to 11.
upvoted 0 times
...
Fletcher
7 months ago
Yeah, it's tricky. I think it's D though, 11 to 2.
upvoted 0 times
...
Maurine
7 months ago
This question seems tough. Not my favorite.
upvoted 0 times
...