Difference between revisions of "Tmp2"
From assela Pathirana
Jump to navigationJump to search
(→Loops) |
|||
Line 65: | Line 65: | ||
for (int j=0;j<m;j++){ | for (int j=0;j<m;j++){ | ||
a=b[i]; | a=b[i]; | ||
... 559 lines of code | //... 559 lines of code | ||
} // end of loop j | } // end of loop j | ||
... another 400 lines of code | //... another 400 lines of code | ||
} // end of loop i | } // end of loop i | ||
</source> | </source> |
Revision as of 15:48, 9 April 2007
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.
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
a=b[i];
//... 559 lines of code
} // end of loop j
//... another 400 lines of code
} // end of loop i