本文整理汇总了C++中NumberArray::end方法的典型用法代码示例。如果您正苦于以下问题:C++ NumberArray::end方法的具体用法?C++ NumberArray::end怎么用?C++ NumberArray::end使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NumberArray
的用法示例。
在下文中一共展示了NumberArray::end方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int /*argc*/, char* /*argv*/[])
{
NumberArray numberArray;
std::copy(Counting(0), Counting(upperLimitSqrt), numberArray.begin());
NumberArray squareArray;
std::transform(numberArray.begin(), numberArray.end(), squareArray.begin(), boost::math::pow<2, Number>);
NumberArray squareSumArray;
Number sum = 0;
for_each_indexed(squareArray.begin(), squareArray.end(), [&](Number n, size_t i) {
sum += n;
squareSumArray[i] = sum;
});
//Number result = 0;
std::set<Number> resultSet;
for_distinct_collection(squareSumArray.begin(), squareSumArray.end(), 2,
[&](std::vector<NumberArray::iterator>::iterator begin, std::vector<NumberArray::iterator>::iterator end)
{
Number number = **(begin+1) - **begin;
if (number >= upperLimit) {
return;
}
std::string s = boost::lexical_cast<std::string>(number);
if (1 == (*(begin+1) - *begin)) {
return;
}
if (isPalindromic(s.begin(), s.end())) {
//std::cout << *begin - squareSumArray.begin() << " " << *(begin+1) - squareSumArray.begin() << std::endl;
//std::cout << "@ " << number << std::endl;
//std::cout << std::endl;
resultSet.insert(number);
//result += number;
}
}
);
std::cout << std::accumulate(resultSet.begin(), resultSet.end(), 0L) << std::endl;
}