I got to know something about C++ when learning CS106X-Stanford and Object-Oriented Programming-Zhejiang University . However, I haven’t studied C++ specially. In this summer vacation, I will dig into C++ and keep some notes here.
The data structure part has been moved to the new post Data Structures and Algorithms Cheatsheet (C++). The remaining part of this post is mainly about language features.
Adding Literals and strings
For historical reasons, and for compatibility with C, string literals are not standard library string
s. It is important to remember that these types differ when you use string literals and library string
s.
When we mix string
s and string or character literals, at least one operand to each +
operator must be of string
type. Thus, it is illegal to add two string literals. (error: invalid operands to binary expression ('const char *' and 'const char *')
)
Unsigned ints
Be careful when using loops like
1 |
for (int i = 0; i < v.size() - 1; i++) |
Because .size()
returns the type size_type
instead of int
. It is an unsigned integral type and when v
is empty, v.size() - 1
would become the maximum integer rather than -1
.
Generic Programming
Use !=
rather than <
in for
loops.
Use iterators rather than subscripts.
近期评论