我想在C ++中将12345拆分为1 2 3 4 5。不使用模运算符怎么办? 有什么有用的STL可以处理吗?
答案 0 :(得分:6)
正如评论中已经指出的那样,这是一个通过转换为字符串而起作用的解决方案。
#include <algorithm>
#include <vector>
#include <string>
const auto str = std::to_string(12345);
std::vector<int> result;
std::transform(str.cbegin(), str.cend(), std::back_inserter(result),
[](auto c){ return c - 48; });
请注意,std::to_string
的实现可能使用模运算符。