Почему библиотека и пространство имен в C++ это не одно и то же. И библиотека и пространство имен содержат в себе функции и операторы созданные другими программистами, как я понял. Например, "iostream" содержит в себе определённые функции и "std" содержит в себе функции, но iostream - библиотка, а std - пространство имен. Может я не так читал или не уловил смысл. Объясните пожалуйста какая между ними разница?
У вас у наблюдается какая-то странная терминологическая каша.
Во-первых, "библиотека" и "пространство имен" - сущности, которые не имеют ничего общего даже отдаленно. Ваш вопрос звучит как "в чем разница между вороной и площадью треугольника". На такой вопрос невозможно ответить без дополнительных пояснений - он бессмыслен.
Во-вторых, нет никакой "библиотеки iostream" и никогда не было. Почему вы вдруг называете "iostream" "библиотекой"? В С++ существует стандартный заголовок<iostream>, содержащий описания сущностей из стандартной библиотеки языка С++. Но заголовок - это совсем не библиотека. Никто не считает <iostream> "библиотекой". Почему вы вдруг это делаете?
Мне объясняли, что "#include < iostream >"это строка подключающая библиотеку "iostream". Поэтому я и решил, что это библиотека. Сейчас перечитал в книге и там действительно написано, что "iostream" это заголовочный файл. Большое спасибо за объяснение.
Когда вы пишите код, то вы работаете с пространством имен.
После того как вы собрали свою программу и запустили ее, программа работает с библиотекой, там уже нет никаких пространств имен.
В библиотеке может быть несколько пространств имен или не одного (точнее вся библиотека размещается в одном глобальном пространстве имен).
Если опуститься ниже, то библиотека это файл *.dll и/или *.lib (для винды), пространство имен объявляется в *.h файлах.