﻿ C++ : Compute the sum o the two arrays and find the largest

# C++ Exercises: Compute the sum of the two given arrays of integers, length 3 and find the array which has the largest sum

## C++ Basic Algorithm: Exercise-93 with Solution

Write a C++ program to compute the sum of the two given arrays of integers, length 3 and find the array which has the largest sum.

Sample Solution:

C++ Code :

``````#include <iostream>
using namespace std;

static int *test(int nums1[], int nums2[])
{
return nums1[0] + nums1[1] + nums1[2] >= nums2[0] + nums2[1] + nums2[2] ? nums1 : nums2;
}

int main () {
int *p;
int nums1[] = { 1, 5, 7 };
int nums2[] = { 1, 5, 3 };
int arr_length = sizeof(nums1) / sizeof(nums1[0]);
p =  test(nums1, nums2);
cout << "\nNew array: " << endl;
for ( int i = 0; i < arr_length; i++ ) {
cout << *(p + i) << " ";
}
return 0;
}
``````

Sample Output:

```New array:
1 5 7
```

Pictorial Presentation:

Flowchart:

C++ Code Editor:

What is the difficulty level of this exercise?

﻿

## C++ Programming: Tips of the Day

What is the usefulness of `enable_shared_from_this?

It enables you to get a valid shared_ptr instance to this, when all you have is this. Without it, you would have no way of getting a shared_ptr to this, unless you already had one as a member.

```class Y: public enable_shared_from_this
{
public:

shared_ptr f()
{
return shared_from_this();
}
}

int main()
{
shared_ptr p(new Y);
shared_ptr q = p->f();
assert(p == q);
assert(!(p < q || q < p)); // p and q must share ownership
}
```

The method f() returns a valid shared_ptr, even though it had no member instance. Note that you cannot simply do this:

```class Y: public enable_shared_from_this
{
public:

shared_ptr f()
{
return shared_ptr(this);
}
}
```

The shared pointer that this returned will have a different reference count from the "proper" one, and one of them will end up losing and holding a dangling reference when the object is deleted.

Ref : https://bit.ly/3pwVzzz