Hi, what does this mean in c++?
sum += c As , and already covered the basic idea, the following adds a few practical notes about compound assignments and a compact C++ routine to check palindromes (since asked about that as well).
Compound-assignment notes (practical):
+=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=. The right-hand side is converted to the left-hand type as part of the operation, so watch signed/unsigned or narrowing conversions.operator+= as a member that returns *this by reference; this allows chaining and avoids unnecessary temporaries. Example pattern:struct Vec {
int x, y;
Vec& operator+=(const Vec& o) {
x += o.x;
y += o.y;
return *this;
}
}; += on standard types like std::string typically modifies in-place and is more efficient than forming a = a + b (fewer temporaries).a += ++a): such patterns are not safe and lead to undefined behavior.Palindrome check (robust, O(n), O(1) extra space):
racecar, level, phrases like A man, a plan, a canal, Panama when non-alphanumerics and case are ignored). The two-pointer method scans from both ends and skips non-alphanumeric characters.#include <string>
#include <cctype>
bool is_palindrome(const std::string& s) {
size_t i = 0, j = s.size();
if (j == 0) return true;
--j;
while (i < j) {
while (i < j && !std::isalnum(static_cast<unsigned char>(s[i]))) ++i;
while (i < j && !std::isalnum(static_cast<unsigned char>(s[j]))) --j;
if (std::tolower(static_cast<unsigned char>(s[i])) != std::tolower(static_cast<unsigned char>(s[j])))
return false;
++i; --j;
}
return true;
} The cast to unsigned char before std::isalnum/std::tolower avoids locale/negative-char issues.
Jump to Post— hag++ 24That is the addition assignment operator... You are taking the value of c and adding it to the current value of sum. So if sum is 5 and c is 2 then after that operation sum will equal 7.
Jump to Post— Narue 5,707It's functionally equivalent to
sum = sum + c.
That is the addition assignment operator... You are taking the value of c and adding it to the current value of sum. So if sum is 5 and c is 2 then after that operation sum will equal 7.
It's functionally equivalent to sum = sum + c .
The C++ language has "compound" operators. The '+=' operator is used to increase the current value of the Left-Hand operand by the value of the Right-Hand operand.
Thus, the statements:
int a = 10;
a += 10; Would cause an integer variable, called 'a', to be declared and initialized to (10), and subsequently be increased by (10) to a value of (20). It produces the same net result as:
int a = 10;
a = (a + 10); EDIT:
Oops, Narue snuck in there.
Oh okey thank you and it will be the same with any other operator right?
oh okey thank you a lot. Also do you think you can help me understand what a palindrome is?
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.