#include <iostream>
#include <string>
#include <vector>
#include <cctype>
#include <algorithm>
int main()
{
std::vector<std::string> Vec{ "A", "B", " ", "D", "E", " ", "", " " };
// Helper function to see if string is all whitespace
// Can also be implemented as free-function for readablity and
// reusability of course
auto stringIsWhitespace = [](const auto &str)
{
return std::all_of(
begin(str), end(str), [](unsigned char c) { return std::isspace(c); });
};
// Find first non-whitespace from the back
auto it = std::find_if(rbegin(Vec), rend(Vec), stringIsWhitespace);
// Erase from there to the end
Vec.erase(it.base(), end(Vec));
for (auto const &str : Vec)
{
std::cout << "Element: " << str << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y2N0eXBlPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKaW50IG1haW4oKQp7CglzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gVmVjeyAiQSIsICJCIiwgIiAiLCAiRCIsICJFIiwgIiAiLCAiIiwgIiAiIH07CgoJLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHNlZSBpZiBzdHJpbmcgaXMgYWxsIHdoaXRlc3BhY2UKCS8vIENhbiBhbHNvIGJlIGltcGxlbWVudGVkIGFzIGZyZWUtZnVuY3Rpb24gZm9yIHJlYWRhYmxpdHkgYW5kCgkvLyByZXVzYWJpbGl0eSBvZiBjb3Vyc2UKCWF1dG8gc3RyaW5nSXNXaGl0ZXNwYWNlID0gW10oY29uc3QgYXV0byAmc3RyKQoJewoJCXJldHVybiBzdGQ6OmFsbF9vZigKCQkJYmVnaW4oc3RyKSwgZW5kKHN0ciksIFtdKHVuc2lnbmVkIGNoYXIgYykgeyByZXR1cm4gc3RkOjppc3NwYWNlKGMpOyB9KTsKCX07CgoJLy8gRmluZCBmaXJzdCBub24td2hpdGVzcGFjZSBmcm9tIHRoZSBiYWNrCglhdXRvIGl0ID0gc3RkOjpmaW5kX2lmKHJiZWdpbihWZWMpLCByZW5kKFZlYyksIHN0cmluZ0lzV2hpdGVzcGFjZSk7CgkvLyBFcmFzZSBmcm9tIHRoZXJlIHRvIHRoZSBlbmQKCVZlYy5lcmFzZShpdC5iYXNlKCksIGVuZChWZWMpKTsKCgoJZm9yIChhdXRvIGNvbnN0ICZzdHIgOiBWZWMpCgl7CgkJc3RkOjpjb3V0IDw8ICJFbGVtZW50OiAiIDw8IHN0ciA8PCBzdGQ6OmVuZGw7Cgl9CgoJcmV0dXJuIDA7Cn0=