Win*_*erd 3 c++ iterator stl c++14 c++17
简单的问题,假设我保存了一个包含 5 个值的集合,并且我想将前 3 个值复制到一个向量中,有没有一种快速简单的方法可以做到这一点?我知道,如果我想将整个集合复制到向量中,我可以使用如下所示的内容:
set <int> test = {0,1,2,3,4,5};
vector<int> vect(test.begin(),test.end());
Run Code Online (Sandbox Code Playgroud)
我可以做类似只复制前 n 个值的事情吗?我一直在使用 for 循环来执行此操作,但我只是想检查是否有更快的编码方法。
要从a获取迭代器n
步骤,会产生您需要的抽象。begin
std::set
std::next
std::vector<int> vec(test.cbegin(), std::next(test.cbegin(), 5));
Run Code Online (Sandbox Code Playgroud)
这是由于std::set
提供了双向迭代器,因此您不能使用像test.cbegin() + 5
. std::next
为您解决这个问题。
归档时间: |
|
查看次数: |
1126 次 |
最近记录: |