Same as cin and cout, string is also defined in the std namespace. The idea of namespaces is quite common in computing languages. For a small program like this one its unlikely that youll run into any problems then again, maybe not but its best to get into the habit of using the std prefix on names in the std namespace. It puts the names of its members in a distinct space so that they dont conflict with the names in other namespaces or global namespace. You may also leave feedback directly on github send feedback about this page title leave a comment. A namespace is a declarative region that provides a scope to the identifiers names of the types, function, variables etc inside it. Excluding the basics having to add std infront of all stl objectsfunctions and less chance of conflict if you dont have using namespace std it is also worth noting that you should never put. All of the standard library is in one drawer, and the only way to get to. This can cause name collisions because it adds every name in the std namespace to the global namespace.
As giblit has already said, using using namespace std. Just like int, float or other data types, we can use string data type also. Lets discuss these two ways of creating string first and then we will see which method is better and why. Cpp programming tutorial pdf book for beginner techringe. Consider this, there are two students in one classroom having same name for example vishal. When programs get very large and complex, and make heavy use of libraries from a variety of sources, the possibility of name collisions rears its incredibly annoying head.
My personal experience is that the pair, the vector and the map are used more often than the other stl classes, so ill frame my discussion around them. To use strings in this way, we need to include the header since it is declared in the header. After editing by nathan, it is obvious that string isnt sufficient for your prototype. Now i searched on web and people said that use std instead of using namespace std and replacing \n with end1. A namespace is like a context which determines the meaning of a symbol if you think of it as a space where names are stored, you wont be too far wrong. Visual quickstart guide that in order to use statements such as cin and cout without std you need to add the line using namespace std. A namespace definition begins with the keyword namespace followed by the namespace. A usingdeclaration is distinct from a using directive, which tells the compiler to look in a particular namespace when looking up any name. That is why we have generally included the using namespace std. While most compilers now accept the new format, they dont require it. Strings are words that are made up of characters, hence they are known as sequence of characters. A usingdirective begins with using namespace a usingdeclaration is also distinct from an alias declaration, which gives a new name to an existing type in the same manner as typedef.
The standard requires that you specify which names in a standard header file youll be using. Im trying to write a program where you can insert and display some books without using a database. And as i and many people above me have said, you do not have to use using namespace std to use the members of that header. This is what happens if a usingdeclaration is put into a namespacedefinition. But using std all the time can sometimes produce rather cluttered code if you e. Used to prevent name collisions when using multiple libraries, a namespace is a declarative prefix for functions, classes, types, etc. It is a superior parameter type for functions that requires nonmodifiable string data.
March 16, 2016 question 2 what is the output of the following program. The compiler hasnt a clue what that type is, as std. All declarations within those blocks are declared in the named scope. In general, avoid putting using directives in header files. Using using how to use the std namespace david kieras, eecs department, university of michigan febrary 2015 why namespaces. Multiple namespace blocks with the same name are allowed. The this pointer is passed as a hidden argument to all nonstatic member function calls and is available as a local variable within the body of all nonstatic functions.
1430 1556 1567 283 713 656 781 1035 1155 1155 1334 1222 395 729 197 704 370 1454 1348 13 189 234 1212 1023 162 862 1346 111 243 1181 857 745 283 211 493 550 595 1048 1488 3 1237 483