当前位置: 首页 > 知识库问答 >
问题:

错误C2676:std::set::const_iterator没有操作符+函数?

徐栋
2023-03-14
std::set<int> s = { 1,2,3,4,5 };
std::set<int> s2(s.begin(), s.begin() + 2);

共有1个答案

曹兴贤
2023-03-14

似乎std::set::const_iterator没有操作符+方法。

关于这一点你是对的。

s.begin()+2这样的操作只能用于随机访问迭代器(请参见链接中的表达式s)。但是,std::set只有双向迭代器(std::set::iteratorstd::set::const_iterator)。

#include <iterator>  // std::next

std::set<int> s2(s.begin(), std::next(s.begin(), 2));
// or const_iterator    
std::set<int> s3(s.cbegin(), std::next(s.cbegin(), 2));
 类似资料:
  • 我在尝试用std::function和std::bind绑定方法时遇到了一个问题。 在我的通信服务类中: CommunicationService::ManageGetRequest签名: BindGET签名: 请求函数类型定义: BindGET上的错误: 错误C2664:“void RESTServer::BindGET(RequestFunction)”:无法从“std::\u Binder”

  • 我是c语言的新手。当我运行代码时,出现以下错误:( 大Sorting.cpp:在函数int main(int, const char**)中:大Sorting.cpp:13: 22:错误:没有匹配函数调用std::向量 这是我的代码

  • 有两种主要的方法来处理流中的错误。你可以重试流并保证流最终会正常运行,或者处理错误并进行转换。 重试 - 现在怎么样? 当你认为错误是由于某些原因是暂时导致的,那么这种方法是适用的。通常不稳定的网络是个很好的例子。当网络不稳定时端点可能会在你多次尝试后才能回应。要点是你的首次尝试可能失败,但重试x次并且在两次尝试之间有一定的时间间隔,最终端点会回应。 retry retry() 操作符可以让我们重

  • 本文向大家介绍Python set常用操作函数集锦,包括了Python set常用操作函数集锦的使用技巧和注意事项,需要的朋友参考一下 定义 set是一个无序且不重复的元素集合。 集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员。但是因为集合本身是无序的,不可以为集

  • 查看std:make_sharedvs std::shared_ptr的前一个堆栈问题,我试图在一个uni项目中实现它。这是之前的“问题”: 我想不出有什么情况

  • reverse 返回一个与指定list相反顺序的list。 val unsortedList = listOf(3, 2, 7, 5) assertEquals(listOf(5, 7, 2, 3), unsortedList.reverse()) sort 返回一个自然排序后的list。 assertEquals(listOf(2, 3, 5, 7), unsortedList.sort())