Well you don't write things in notepad over and over, you get an idea and make up things to do or use the exercises from the book. If you're reading from a book take notes, re-read, make sure you understand everything it just talked about. If you're reading about cout << "Hello World!"; you should know what
#include is, you should know what <iostream> is, you should know what using namespace std (or std:

, you should know what cout is, you should know what << is, you should know what "Hello World!" is, you should know what ; is. (cout is an operand for the ostream, >> is an operator for the ostream, "Hello World!" is a string litera, ; is used to let the IDE know that this is the end of the line of code).
You're in the beginning parts of the language, you're going to learn the basics. Practice them, understand them, think of ways to use them. (Once you learn cin you can do a lot more, you could use a for loop to compound interest made on an investment using the forumula I=PRT. You could take a string and convert every character to upper or lower case, you could use a for loop or a range for for this)
As for the second part, if you don't know what these are you're a beginner, you're at the very very very beginning and haven't learned anything past int main() { cout << "Hello World!" << endl; return 0; } (You probably didn't even know you could execute and compile this code and it would work just fine)
void is a type associated with functions (int main(), int is a type). Every function is expected to return a value except for void. Main is the only other function where you do not have to give a return.
Code:
void PrintString(){
cout >> "Hello World!";
Any other function that had a type you would have to do a return.
Code:
string PrintString(){
cout << "Hello World!";
return "Hello World!";
Without the return at the end of the string function this code would fail to compile.
Print if a function from the C language (actually it's "printf"). It takes a char * (aka a C-style string. A c-style string is really an array of chars)
Code:
string cppString = "Hello World";
char cStyleString[] = "Hello World Too!";
printf(cStyleString);
printf(cppString);
the cppString won't work because that is a C++ String, which is a string literal, and the function (printf) takes a const char*
And last while, if, do while, and for are all looping statements.
string cppString = "Hello World";
Code:
if (cppString.size() > 0){ // while the size of cppString is > 0
cout << cppString;
cppString = ""; // makes cppString empty, ultimately making the size 0
}
Code:
while (cppString.size() > 0){ // while the size of cppString is > 0
cout << cppString; // makes cppString empty, ultimately making the size 0
}
Code:
do{ // do
cout << cppString; // this
cppString = ""; // makes cppString empty, ultimately making the size 0
}
Code:
for (int i = 0; i != cppString.size(); ++i) // a for loop
cout << cppString[i];
The code after each loop statement only executes if the value it's operating one is true, in the case the size of cppString (cppString.size()). Since it's initially "Hello World!" (Which is 12 characters long) and is > 0 then the code executes. The only different ones would be do .. while and for.
Do while executes any code in it's scope BEFORE checking the statement, so you're guaranteed to print cppString no matter what it's checking for.
My for loop turns cppString into a C-Style string (It can be treated the same way as an array, depending on how you use it). Using the variable "i" to cout the character at the position of the array. (h is 0 in the index, e is 1, l is 2, l is 3, o is 4 etc).