C++

How to Sum Up the Elements of a Vector in C++

A vector is a data structure used to store a collection of similar type objects in C++. It resembles an array but its size varies dynamically as compared to an array. It implies that it may change in size to fit more or fewer parts. Summing up the elements of a vector in C++ is a common practice that needs to be learned and beneficial for the users who have passion to learn C programming.

Follow this guide to learn how to sum up the elements of a C++ vector.

How to Sum up a Vector’s Elements in C++

Summing up vectors can be accomplished through different ways, which are as follows:

Method 1: STL Accumulate

The most direct way to sum up the elements of a C++ vector is by using the STL accumulate function. This function accepts a vector and an initial value, then performs a summation of the vector’s elements. The accumulation process starts with the initial value and then adds each successive element of the vector. The output is the sum of all the elements in the vector. The accumulate algorithm is both efficient and straightforward, making it the easiest way to sum up the elements of a C++ vector.

Here is an illustration of how to use accumulate to add the components of a vector.

#include<iostream>
#include<vector>
#include<numeric>

using namespace std;
int main()
    {
        vector<int> vect = {54,17,36,30};
        cout<<"Sum of all the elements are:"<<endl;
        cout<<accumulate(vect.begin(),vect.end(),0);
    }

In this code, we are declaring an integer vector in the variable ‘vect’. Then we are printing the sum of the vector by simply using the accumulate() function. vect.begin() function refers to the start of the vector, and vect.end() function refers to the end of the vector, meaning the elements of the vector are to be summed up from start to end i.e., all elements.

Output

2: Simple for Loop

Another method of summing up the elements of a C++ vector is to use a for loop. When using a for loop, the programmer defines a variable to hold the sum and starts iterating through the vector. The sum variable is increased with the current element’s value at each iteration. When the loop finishes, the final value of the sum variable is the sum of all the vector elements. This technique is less efficient than using the accumulate algorithm, but it gives the programmer more control over how the elements is added together.

To further understand, examine this code.

#include <iostream>
#include <vector>
#include<numeric>

using namespace std;
int main()
    {
        vector<int> vtr = {1, 2, 3, 4, 5};
        float sum = 0;

        for (int i=0; i<vtr.size(); i++)
            sum += vtr[I];

        cout<< sum <<endl;

        return 0;
    }

We are using a for loop to sum the vector, much like in this code. In the main() method, a vector is declared, initialized, then iterated through using a for loop. As the vector is iterated through, the total is placed in the ‘sum’ variable, which was previously initialized. and then we can output the sum once the entire vector has been iterated over.

Output

3: std::valarray

The class for representing and working with value arrays is called std::valarray. Valarrays are more effective than vectors in several arithmetic computations in addition to allowing element-wise operations.

Refer to this example to understand how valarrays work.

#include<iostream>
#include<vector>
#include<valarray>

int main()
{
    std::vector<int> seq{ 1,2,3,4,5,6,7,8,9,10 };
    std::valarray<int> seq_add{ seq.data(), seq.size() };
    std::cout << "sum = " << seq_add.sum() << "\n";

    return 0;
}

We are adding the vector using a valarray in this code. The std function is used in the main() method to declare and initialize an integer vector, and the seq.add() function is used to use the data and size of the sequence and the sum may then be reported using the seq.add() function.

That’s how you can sum up the elements of a vector in C++.

Conclusion

The choice of which method to use depends on several factors, such as the programmer’s experience level, the specific application, and the nature of the data. In general, however, the most straightforward way to sum up the elements of a C++ vector is to use the accumulate algorithm. It is the fastest and easiest way to perform the desired operation. The other techniques, such as for loops and valarrays, should only be used when the program requires more control or flexibility.

About the author

Hiba Shafqat

I am a Computer Science student and a committed technical writer by choice. It is a great pleasure to share my knowledge with the world in which I have academic expertise.