To są przestrzenie nazw. Przestrzeń nazw std jest standardową przestrzenią nazw w c++. Posiada definicję funkcji, zmiennych. Wykorzystywane jest to po to, aby nazwy na siebie nie nachodziły. Czyli, żeby w kodzie nie było np dwóch zmiennych o takiej samej nazwie.
Jako, że jest to standardowa przestrzeń nazw nie musisz dołączać do kompilatora żadnej biblioteki. Powinno wszystko już być. Do zapisu wykorzystuję się operator zasiegu - "::" , namespace nazwa_przestrzeni lub using namespace nazwa_przestrzeni;
W tym pierwszym w kodzie wprowadzasz konkretną zmienną do obszaru deklaracyjnego np:
namespace std{}
int main()
{
int x;
using std::cout;
cout << "Wprowadz znak:" << std::endl;
std::cin >> x;
return 0;
}
W tym drugim przypadku jest to masowe wykorzystanie operatora zasięgu. Czyli wprowadzasz wszystkie zmienne, funkcje do obszaru deklaracyjnego z danej przestrzeni nazw.
To tak w skrócie.