Difference between revisions of "Tmp2"
From assela Pathirana
Jump to navigationJump to search
Line 1: | Line 1: | ||
=Good practice in Coding (in C++/C)= | =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. | * 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. | ||
{| | {| | ||
Line 30: | Line 31: | ||
</source> | </source> | ||
|} | |} | ||
==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 <tt>for</tt> loops define the counter within the <tt>for</tt> statement. | |||
<source lang=cpp> | |||
for(unsigned int i=0;i<vect.size();i++){ // much better than a globally defined i. | |||
... | |||
} | |||
</source> | |||
==Loops== | |||
* For loops without braces are sometimes possible. But do a favor, don't do it! | |||
<source lang=cpp> | |||
for (int i=0;i<n;i++) | |||
// foo | |||
// bar | |||
cout << str[i]; // perfrectly correct, loop ends here. BUT CONFUSING. | |||
c=a+b | |||
.. | |||
.. | |||
</source> | |||
<source lang=cpp> | |||
for (int i=0;i<n;i++){ | |||
// foo | |||
// bar | |||
cout << str[i]; | |||
} //much better way. | |||
c=a+b | |||
.. | |||
.. | |||
</source> | |||
* Use indenting and comments to make multiple loops easy to read. | |||
<source lang=cpp> | |||
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 | |||
</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