Heißer Tipp wenn du nach Hilfe zu Fehlern fragst: Nenn den Fehler!
Geschachtelte Namespaces werden in C++ mit :: getrennt, nicht mit ..
Es gibt nichts in deinem Code, woher dieser Namespace kommen sollte. Jedenfalls weder aus iostream, noch string, noch list. Ganz bestimmt nicht aus string.h, das ist C, was überhaupt gar keine Namespaces kennt, und solltest du daher sofort vergessen.
System.Collections.Generic klingt schwer nach C# oder C++/CLI. Sei dir sicher, welche Sprache du sprichst! C, C++, C++/CLI, C# sind jeweils komplett unterschiedliche Sprachen!
Generische Listen in C++ ist die std::list, eben aus dem Header list und im Namespace std, nix mit System.Collections. Ob das jetzt ist, was du suchst, oder ob du eigentlich lieber eine ganz andere Sprache sprechen möchtest, kannst nur du wissen.
Auch wenn ich using vor das "namespace" schreibe bekomme ich eine Fehlermeldung
Noch ein Tipp: Herumraten wird niemals zum Erfolg führen. Dazu sind die Sprachen mit "C" im Namen viel zu kompliziert. Sie akzeptieren so gut wie alles, was man schreibt, aber ein einzelnes Zeichen kann (und wird!) den Sinn eines Ausdrucks komplett verkehren. Du musst von jedem einzelnen Zeichen in deinem Program genau wissen, wo und warum du es setzt.
Hier ist das Schreiben oder Auslassen eines ganzen Wortes natürlich erst recht so ein Fall. namespace alleine deklariert einen Namespace, using namespace nutzt ihn; was ihn quasi aufhebt, also praktisch das Gegenteil von namespace alleine.