### EduardoBrito's blog

By EduardoBrito, history, 3 years ago,

Hello everyone!

I want to offer you a blog about the STL of C++11, a few weeks ago I was reading interesting information about this topic in GeeksforGeeks, and today I decided to share this information through this blog for all those interested. In advance, I want to thank all those who pay attention and interest to this blog, and thank any comments about it (positive or negative). Well, let's start now.

I will start with some array algorithms in the C++11 STL, which I did not know before and that can have a very interesting use, depending on the problem.

Array algorithms: these algorithms operate on an array and are useful in saving time during coding and hence useful in competitive programming as well.

all_of(): this function operates on whole range of array elements and can save time to run a loop to check each element one by on. It checks for a given property on every element and returns true when each element in range satisfies specified property, else returns false.

Code

any_of(): this function checks for a given range if there’s even one element satisfying a given property mentioned in function. Returns true if at least one element satisfies the property, else returns false.

Code

none_of(): this function returns true if none of element satisfies the given condition, else returns false.

Code

iota(): this function is used to assign continuous values to array.

Code

accumulate(): this function returns the sum of all the values lying in a range between [first, last) with the variable sum.

Code

Thank you to all

• +49

| Write comment?
 » 3 years ago, # |   0 is it applicable for c++14???????
•  » » 3 years ago, # ^ |   0 Yes, it is.
 » 3 years ago, # |   +2 Thanks for share! I have a question the time complexity of those functions is linear?
•  » » 3 years ago, # ^ |   +3 all_of, any_of, none_of, accumulate, iota — O(n)copy_n — O(cnt)
 » 3 months ago, # |   0 if a[7]={1, 2, 3, 4, 5, 6, 7} Is there any easy solution or function to set a range of elements to another value? For example,for the array a[7] up there, I want to make elements 0 from index 2 to index 5. then the array will be,a[7]={1, 2, 0, 0, 0, 0, 7}How can i do it without using any loops?
•  » » 3 months ago, # ^ |   +1 You can use std::transform.
•  » » » 3 months ago, # ^ |   0 Any example?
•  » » » » 3 months ago, # ^ |   0 std::vector a {1, 2, 3, 4, 5, 6, 7}; std::transform(std::begin(a) + 2, std::begin(a) + 6, std::begin(a) + 2, [&](int x) { return 0; }); 
•  » » » » » 3 months ago, # ^ |   0 Thank You So much!!
•  » » 3 months ago, # ^ |   0 I think you're looking for std::fill (see cppreference for an example).