Organize Includes

The Organize Includes algorithm analyzes a single file and tries to make all necessary suggestion so that the file will then compile without giving any warning of the type "_XY was not declared in this scope._". In addition it will suggest the removal of all unnecessary includes. Consider the following example:

#include <vector>

int main() {
    std::string s;
}

When running the Organize Includes algorithm on the sample code it will suggest the removal of the currently existing include and the insertion of an include statement to string.