我正在尝试将以下Python语句翻译为C ++:
some_array = [11, 22, 33, 44]
first, rest = some_array[0], some_array[1:]
到目前为止我所拥有的是:
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());
答案 0 :(得分:4)
此:
vector<int> rest = some_array;
rest.erase(rest.begin());
可缩短为:
vector<int> rest(some_array.begin() + 1, some_array.end());
如果您可以使用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());
虽然我怀疑这会有多大优势......
答案 1 :(得分:1)
最简单的方法是
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {11, 22, 33, 44};
int first = arr[0];
vector<int> rest;
for (int i = 1; i < arr.size(); i++) {
rest.push_back(arr[i]);
}
return 0;
}
或者你也可以这样做,
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {11, 22, 33, 44};
int first = arr[0];
vector<int> rest(arr.begin() + 1, arr.end());
return 0;
}