此Python切片语句的C ++等效代码是什么?

lif*_*nce 0 c++ code-translation

我正在尝试将以下Python语句转换为C ++:

some_array = [11, 22, 33, 44]
first, rest = some_array[0], some_array[1:]
Run Code Online (Sandbox Code Playgroud)

我到目前为止所拥有的是:

int array[4] = {11, 22, 33, 44};
vector<int> some_array (array, 4);
int first = some_array.front();
vector<int> rest = some_array;
rest.erase(rest.begin());
Run Code Online (Sandbox Code Playgroud)
  • 如何缩短和/或有效地重写它?
  • 可以在不使用C ++模板和/或向量的情况下编写此代码吗?
  • 是否有在线服务(或软件)可将这些平凡的Python代码片段转换为人类可读的C ++代码?

The*_*ant 5

这个:

vector<int> rest = some_array;
rest.erase(rest.begin());
Run Code Online (Sandbox Code Playgroud)

可以缩短为:

vector<int> rest(some_array.begin() + 1, some_array.end());
Run Code Online (Sandbox Code Playgroud)

如果可以使用C ++ 11,则可以将整个代码缩短为:

vector<int> some_array { 11, 22, 33, 44 };
int first = some_array.front();
vector<int> rest (some_array.begin() + 1, some_array.end());
Run Code Online (Sandbox Code Playgroud)

尽管我怀疑这将是一个很大的优势...