获取除第一个元素外的所有元素作为单独的向量
Get all elements but the first as a separate vector
我正在尝试用c++编写一个基本的命令行程序。虽然代码的其余部分可能也有很多问题,但我现在面临的问题是:我已经将输入行分成了几个部分,但是我不知道如何获得除了第一个部分之外的所有部分,所以我可以将它作为命令的参数列表传递到下一行。
如果这是Ruby,我会这样做,其中parts
是命令的空格分隔参数数组:
command = parts[0]
args = parts[1..-1]
,其中parts
是空格分隔的位数组。
TL;DR:我怎么能得到vector
的第一个元素以外的所有元素?
如果使用另一种类型更容易,请随意说——我认为移植不会有太多麻烦。
我试过使用deque
,但我不想修改parts
,只是得到它的碎片。我也在这个网站上搜索了一下,但所有出现的问题要么是相关的,但以一种我无法使用的方式解决,要么是一个我宁愿避免的非常粗糙的解决方法,要么是完全不相关的。
<一口>注:我不是using namespace std
,但std::
是一个痛苦的类型,所以我省略了它在这里。如有需要,请务必在回答中提供。一口>
<一口> P.P.S.一口>
TL;DR:我怎样才能得到一个向量除了第一个元素以外的所有元素?
如果你想要一个包含它的向量,那么这样做:
std::vector<int> parts = ...;
std::vector<int> args(parts.begin() + 1, parts.end());
如果您只想访问vector元素,则从parts.begin()+1
开始直到parts.end()
。
最习惯的方法是使用迭代器并使函数接受这样的迭代器:
template<typename It>
void func(It begin, It end) { ... }
然后你传递你的向量为
func(begin(vector) + 1, end(vector));
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 如何在C++中从两个单独的for循环中添加两个数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 从 2 个单独的数组中删除重复元素
- 如何在C++中单独锁定unordered_map元素
- clang格式:如何将构造函数的初始值设定项列表的每个元素保存在单独的行上
- 在C++中,如何在没有新元素且不单独声明单个元素的情况下创建"std::initializer_list<base *>"?
- 单独保留重复元素
- 将矢量<矢量>元素的值存储在<int>单独的容器上
- 通过在 C++ 中单独直接访问容器的迭代器来删除容器的元素
- 可以单独声明函数数组的元素
- 在单独的线程中处理矢量元素
- 获取除第一个元素外的所有元素作为单独的向量
- 单独移动数组(raw array, std::array, std::vector)的每个元素
- 将字符串分解为单独的元素