我正在使用C ++中的char数组的一部分进行工作,并试图找出实现此目的的最简单方法。我知道在Python中,您可以简单地执行str [1:]之类的操作,该操作将为您提供除第一个位置以外的整个数组,并且想知道C ++是否有与此类似的东西,否则,最简单的实现方法是什么。
答案 0 :(得分:1)
目前,您可以尝试将其用作仅标头的Boost.Range(sliced等)库(+在chapter处有一个theboostcpplibraries.com)。
库文档中的示例:
#include <boost/range/adaptor/sliced.hpp>
#include <boost/range/algorithm/copy.hpp>
#include <boost/assign.hpp>
#include <iterator>
#include <iostream>
#include <vector>
int main(int argc, const char* argv[])
{
using namespace boost::adaptors;
using namespace boost::assign;
std::vector<int> input;
input += 1,2,3,4,5,6,7,8,9;
boost::copy(
input | sliced(2, 5),
std::ostream_iterator<int>(std::cout, ","));
return 0;
}
将来,标准中可能会有一个叫做span<T>
的东西(讨论here)。