Tmp2
From assela Pathirana
Jump to navigationJump to search
Good practice in Coding (in C++/C)
Keep complications to minimum
- Use pointers sparingly, there are many situations where they have good alternatives. Make a concious effort to find these alternatives if at all possible. One good example is use of vectors instead of dynamic arrays.
int* a = NULL; // Pointer to int, initialize to nothing.
int n; // Size needed for array
cin >> n; // Read in the size
a = new int[n]; // Allocate n ints and save ptr in a.
for (int i=0;i<n;i++){
cin >> a[i];
}
...
...
delete [] a; // When done, free memory pointed to by a.
a = NULL; // Clear a to prevent using invalid memory reference.
vector <int> a;
int n; // Size needed for array
cin >> n; // Read in the size
for (int i=0;i<n;i++){
int tmp;
cin >> tmp;
a.push_back(tmp);
|}
...
...
a.erase(); // When done, free memory pointed to by a.
|
Variables
- Define variables with minimum scope. If you just need a variable to use for a counter in a loop, don't define it as a global variable. In for loops define the counter within the for statement.
for(unsigned int i=0;i<vect.size();i++){ // much better than a globally defined i.
...
}
Loops
- For loops without braces are sometimes possible. But do a favor, don't do it!
for (int i=0;i<n;i++)
// foo
// bar
cout << str[i]; // perfrectly correct, loop ends here. BUT CONFUSING.
c=a+b
..
..
for (int i=0;i<n;i++){
// foo
// bar
cout << str[i];
} //much better way.
c=a+b
..
..
- Use indenting and comments to make multiple loops easy to read. In long loops like the code shown below it really helps to have the comments like end of loop i at the place where the loop is closed.
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
a=b[i];
//... 559 lines of code -- we don't print them here
...
} // end of loop j
//... another 400 lines of code -- again we skip.
...
} // end of loop i