# C++ 11 Features

Q:

## New C++ Algorithms

The C++11 Standard Library defines new algorithms that mimic the set theory operations `all_of()``any_of()` and `none_of()`. The following listing applies the predicate `ispositive()` to the range `[first, first+n)` and uses `all_of()``any_of()` and `none_of()` to examine the range's properties:

``#include <algorithm>``

`//C++11 code`

`//are all of the elements positive?`

`all_of(first, first+n, ispositive()); //false`

`//is there at least one positive element?`

`any_of(first, first+n, ispositive());//true`

`// are none of the elements positive?`

`none_of(first, first+n, ispositive()); //false`

A new category of `copy_n` algorithms is also available. Using `copy_n()`, copying an array of 5 elements to another array is a cinch:

``#include``

`int source={0,12,34,50,80};`

`int target;`

`//copy 5 elements from source to target`

`copy_n(source,5,target);`

The algorithm `iota()` creates a range of sequentially increasing values, as if by assigning an initial value to `*first`, then incrementing that value using prefix ++. In the following listing, `iota()` assigns the consecutive values {10,11,12,13,14} to the array `arr`, and {'a', 'b', 'c'} to the char array `c`.

``include <numeric>``

`int a={0};`

`char c={0};`

`iota(a, a+5, 10); //changes a to {10,11,12,13,14}`

`iota(c, c+3, 'a'); //{'a','b','c'}`

C++11 still lacks a few useful libraries such as an XML API, sockets, GUI, reflection — and yes, a proper automated garbage collector. However, it does offer plenty of new features that will make C++ more secure, efficient (yes, even more efficient than it has been thus far! See Google's benchmark tests), and easier to learn and use.

If the changes in C++11 seem overwhelming, don't be alarmed. Take the time to digest these changes gradually.

+1 vote
+1 vote
+1 vote
+1 vote
+1 vote
+1 vote
+1 vote
+1 vote
• c