I have seen in many people's code that they use a solve function instead of writing the logic in the main function. What advantages it has over writing the code directly in the main function?
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3839 |
3 | Radewoosh | 3646 |
4 | jqdai0815 | 3620 |
4 | Benq | 3620 |
6 | orzdevinwang | 3612 |
7 | Geothermal | 3569 |
8 | ecnerwala | 3494 |
9 | Um_nik | 3396 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | Um_nik | 164 |
2 | -is-this-fft- | 162 |
3 | maomao90 | 159 |
3 | atcoder_official | 159 |
5 | cry | 158 |
5 | awoo | 158 |
7 | adamant | 155 |
8 | nor | 154 |
9 | TheScrasse | 153 |
10 | Dominater069 | 152 |
I have seen in many people's code that they use a solve function instead of writing the logic in the main function. What advantages it has over writing the code directly in the main function?
Name |
---|
Auto comment: topic has been updated by Brown_Wolf (previous revision, new revision, compare).
The use of the function solve() does not affect the running time of the program. But it makes the code more readable.
aggree
Thanks Sir!!
I do this too just because i prefer that my main function has shorter code and in problems with many test cases it is easier to bring the line of function inside the while loop of testcases,in general it depends on you whether you like modular or linear programming alhtough writing functions makes code more readable
it's make the code easier to read and pretty handy when dealing problem with multiple testcases
In terms of short questions , Where i dont need to work with multiple testcases should i use solve () ??
this is a personal preference of mine, where I typically set t to 1 and then comment out the cin line when working on problems that involve a single test case.
Got that.. Thanks
I don't use cause functions take memory.
https://stackoverflow.com/questions/21735407/do-functions-occupy-memory-space
Classic case of premature optimization.
That is not a consideration you should be having, pretty much ever.
Allows for easier switching between single testcase and multiple testcase problems. For example:
Thanks Sir/ma'am.
You can use
return
to easily and quickly exit the current testcase.By far the best reason. Imagine having something like if specific case, then continue the loop. And now you have a bunch of such cases. Your code would be pretty ugly and filled with just exiting the loop.
Thanks Sir!!! If you don't mind Sir, Do you have any tutorial about this ??.. I actually don't know how to use it.
You don't have to worry about using continue in the testcase loop when you're done printing the answer to stdout halfway to the code, you can just return after that.
If you don't mind Sir, Do you have any tutorial about this ??.. I actually don't know how to use it.
One important characteristic of high-quality code is orthogonality. (I'm not telling you to make your code more vertical, but more clearly.) If you want to write orthogonal code, it is often more efficient to encapsulate statements within functions, making debugging more convenient as well.
Additionally, the best part is that the "return;" statement can directly jump to the next test case without the need for control variables or goto-like statements.
Moreover, some programmers try to have fewer statements within their main function to make the logic clearer, specifically for their own reading purposes.
for me , the reason I use solve() is because I can just return in the function whenever I want to and preceed to the next testcase , that makes it easy to exit a testcase , doing it in main would require multiple variables and ifs so it is just convenient