Many things! And it has increased the size of already humongous C++. Whatever you can do with new c++11 features, you can most probably do without them; but many things have been cleaned up and/or requires less typing. C++ is a great language, albeit an ugly one, for system programming, simulations and embedded systems (not to mention to implement other languages). This make it extremely relevant to electrical engineers who often works at the interface of computer science with their discipline.
Heavy user of C++ should consult Scott Meyer's "Effective Modern C++" for much more comprehensive suggestions.
In any case, following are extremely useful features to start with. I am listing features which a student can easily use in his/her assignment/projects, assuming that you use C++ classes and STL (probably templated class/functions one as well).
Disclaimer: the snippets are not tested. They are here for demo purpose.
Uniform initialization syntax
foo_type myVar { ka, kha, ga }; or
foo_type myVar = { ka, kha, ga };
e.g.
vector<int> myInts{1, 2, 3};
list<float> myFloat {1.0, 1, 3e-12 };
vector<
Smart Pointers
They wrap the raw pointer and manage the resources. In short if you use smart pointers i.e. `unique_ptr`, `shared_ptr`, `weak_ptr` etc., you never have to use `delete` keyword. Most likely, you don't have to use `weak_ptr` ever unless you are maintaining a high performance library.
Type related especially `auto`
Usage of keyword `auto` for type inference and range based loop. A combination of both can reduce the for loop:
Old style