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

基于范围的函数内循环阵列

章建木
2023-03-14

我对C很陌生,现在就在做中学习。在课堂材料中,我有以下功能

std::vector<std::complex<double>> material::get_idx(const std::vector<double>& numbers) {

  std::vector<std::complex<double>> res;

  for (auto& num : numbers) {
    // calculate with num (we don't modify it) and push_back to res 
    ...
  }

  return res;
}

几分钟前,我像这样使用了普通for循环:for(size\u ti=0;I


共有1个答案

司空昊阳
2023-03-14

自动复制代码

哪个更正确取决于你想要哪个。

您可以只键入double const

我从自动开始

如果我想编辑到位的元素,自动

 类似资料:
  • 由于valgrind中出现了一些分段错误和警告,我发现这段代码不正确,并且在for range循环中有一些悬而未决的引用。 看起来好像开始和结束是从一个临时循环中提取的,并且在循环中丢失了。 当然,一种方法是 然而,我想知道为什么for(auto e:f()[5])是一个错误,以及是否有更好的方法或某种方法来设计f,甚至容器(

  • 在临时范围上基于范围的for循环中,Barry提到以下内容不受被破坏的临时对象的影响,我测试的成员v确实存在于for循环的整个循环中(因为在for循环的整个循环中没有调用析构函数X)。解释是什么?

  • 给定一个(未排序的)数组S和一些整数k,找到对的数量i, j使得S的范围[i... j] 我在一次采访中收到了这个问题,经过排序后只能得出一个O(nlogn)解。但是,有人告诉我有一个O(n)解。有什么想法吗?

  • C 11 使用基于范围的for循环对作为类成员的std::向量进行迭代的代码是什么?我尝试了以下几个版本:

  • 在std::unordered_映射上运行基于范围的for循环时,循环变量的类型似乎不使用引用类型: MSVC 2017、gcc 8.2和clang 7.0.0都在这里报告了一个失败的断言。与std::vector相反,它的断言不会失败,正如人们所期望的那样: 然而,在MSVC 2017和gcc 8.2上,修改局部变量r的循环将产生明显的副作用: 例如,此程序将打印(忽略订单): 我遗漏了什么?尽

  • 问题内容: 在Java中,循环的主体和循环条件不属于同一范围。因此,以下代码将无法编译: 但是这段代码对我来说确实有意义。 另外,如果身体和身体状况都在同一范围内,我将找不到任何陷阱。由于主体将始终被执行,而Java则不会,我不知道如何跳过最外层主体范围中的变量声明。即使有可能,编译器始终可以检测到这种可能性,然后产生编译时错误。 是否有这种现象的原因(除了将循环的格式保持为与相同)?我真的很好奇