标签: iteration

如何迭代向量并知道元素的索引?

我需要访问向量中的每个元素,并且还知道元素所在的索引.

到目前为止,我可以提出两种方法

 for (iterator it= aVector.begin(), int index= 0; it!= aVector.end(); ++it, ++index)
Run Code Online (Sandbox Code Playgroud)

留下类型签名.它看起来我不能使用汽车

 for (int index = 0; index < aVector.size(); ++index)
{
    // access using []
}
Run Code Online (Sandbox Code Playgroud)

哪一个更有效率还是有更好的方法来做到这一点?

c++ iteration algorithm stl vector

26
推荐指数
3
解决办法
2万
查看次数

Java foreach迭代顺序是否精确定义了基元?

示例代码:

int a[] = new int[]{0, 1, 2, 3};
int result = 0;
for (int i : a)
    result += i;
Run Code Online (Sandbox Code Playgroud)

是循环保证遍历跨越a[0],a[1],a[2],a[3]的顺序?我坚信答案是肯定的,但这个页面似乎并没有明确说明秩序.

有一个坚实的参考?

java iteration foreach

25
推荐指数
3
解决办法
8416
查看次数

以n的倍数迭代一个python序列?

如何批量处理序列的元素?

例如,使用序列"abcdef"和批量大小为2,我想执行以下操作:

for x, y in "abcdef":
    print "%s%s\n" % (x, y)
ab
cd
ef
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用,因为它期望列表中的单个元素本身包含2个元素.

什么是一个漂亮,简短,干净,pythonic的方式来处理批处理列表中的下一个n个元素,或者从一个更大的字符串处处理长度为n的子字符串(两个类似的问题)?

python iteration

25
推荐指数
6
解决办法
2万
查看次数

不知道如何解决SICP练习1.11

练习1.11:

函数ff(n) = nif n < 3f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3)if 的规则定义n > 3.编写一个f通过递归过程计算的过程.编写一个f通过迭代过程计算的过程.

递归地实现它很简单.但我无法弄清楚如何迭代地做到这一点.我尝试与给出的Fibonacci示例进行比较,但我不知道如何将其用作类比.所以我放弃了(羞辱我)并用Google搜索解释,我发现了这个:

(define (f n)
   (if (< n 3)
       n
       (f-iter 2 1 0 n)))

(define (f-iter a b c count)
   (if (< count 3)
       a
       (f-iter (+ a (* 2 b) (* 3 c))
               a
               b
               (- count 1))))
Run Code Online (Sandbox Code Playgroud)

阅读之后,我理解代码及其工作原理.但我不明白的是从函数的递归定义到此需要的过程.我不明白代码是如何在某个人的头脑中形成的.

你能解释一下解决方案所需的思考过程吗?

iteration recursion scheme sicp

25
推荐指数
2
解决办法
5645
查看次数

Google Collections ImmutableMap迭代订单

我需要将Google Collection ImmutableMapLinkedHashMap- 不可变映射与定义的迭代顺序组合在一起.似乎ImmutableMap本身实际上已经定义了迭代顺序,至少它的文档说:

基于散列的不可变Map,具有可靠的用户指定迭代顺序.

但是没有更多细节.快速测试表明这可能是真的,但我想确定.

我的问题是:我可以依赖ImmutableMap的迭代顺序吗?如果我这样做ImmutableMap.copyOf(linkedHashMap),它将具有与原始链接哈希映射相同的迭代顺序吗?构建器创建的不可变映射怎么样?一些权威答案的链接会有所帮助,因为谷歌没有找到任何有用的东西.(不,与来源的链接不计算在内).

java iteration guava

25
推荐指数
3
解决办法
1万
查看次数

PHP - 使用foreach获取第一个元素

想知道在foreach循环上获得第一次迭代的好方法是什么.我想在第一次迭代时做一些不同的事情.

在这些情况下,条件是我们的最佳选择吗?

php iteration foreach

25
推荐指数
5
解决办法
7万
查看次数

允许迭代而不产生任何垃圾

我在实现IEnumerable接口的对象池中有以下代码.

public IEnumerable<T> ActiveNodes
{
    get
    {
        for (int i = 0; i < _pool.Count; i++)
        {
            if (_pool[i].AvailableInPool)
            {
                yield return _pool[i];
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

据我所知(根据这个问题),这将产生垃圾,因为需要收集IEnumerable对象._pool中的所有元素都不会被收集,因为池的目的是保持对所有元素的引用以防止垃圾创建.

任何人都可以建议一种允许迭代_pool以便不生成垃圾的方法吗?

在池上迭代时,池中的所有项都AvailableInPool == true应该迭代.订单无关紧要.

c# iteration garbage-collection compact-framework

25
推荐指数
3
解决办法
7699
查看次数

python:迭代列表中的特定范围

让我们说我有一个清单:

listOfStuff =([a,b], [c,d], [e,f], [f,g])
Run Code Online (Sandbox Code Playgroud)

我想要做的是以类似于以下代码的方式遍历中间2组件:

for item in listOfStuff(range(2,3))
   print item
Run Code Online (Sandbox Code Playgroud)

最终结果应该是:

[c,d]
[e,f]
Run Code Online (Sandbox Code Playgroud)

此代码目前不起作用,但我希望您能理解我想要做的事情.

python iteration

25
推荐指数
2
解决办法
9万
查看次数

循环使用jq for JSON的数组(在命令行上)

我有一个数组:

[
    {
        "AssetId": 14462955,
        "Name": "Cultural Item",
        "Description": "It\u0027s... you know... an item. People love items!!!",
        "AbsoluteUrl": "http://www.roblox.com/Cultural-Item-item?id=14462955",
        "PriceInRobux": "300",
        "PriceInTickets": "",
        "Updated": "3 years ago",
        "Favorited": "370 times",
        "Sales": "55",
        "Remaining": "",
        "Creator": "ROBLOX",
        "CreatorAbsoluteUrl": "http://www.roblox.com/users/1/profile",
        "PrivateSales": "3 Private Sellers",
        "PriceView": 1,
        "BestPrice": "666,666,666",
        "ContentRatingTypeID": 0,
        "IsServerSideThumbnailLookupInCatalogEnabled": true,
        "IsLargeItem": false,
        "IsThumbnailFinal": true,
        "IsThumbnailUnapproved": false,
        "ThumbnailUrl": "http://t3.rbxcdn.com/cfbab57cabc6090d078c5f7af403caaa",
        "BcOverlayUrl": null,
        "LimitedOverlayUrl": "http://images.rbxcdn.com/793dc1fd7562307165231ca2b960b19a.png",
        "DeadlineOverlayUrl": null,
        "LimitedAltText": "Limited",
        "NewOverlayUrl": null,
        "SaleOverlayUrl": null,
        "IosOverlayUrl": null,
        "XboxOverlayUrl": null,
        "IsTransparentBackground": false,
        "AssetTypeID": 8,
        "CreatorID": 1, …
Run Code Online (Sandbox Code Playgroud)

iteration jq

25
推荐指数
4
解决办法
4万
查看次数

如何在没有迭代的情况下获取给定LinkedHashSet元素的索引?

它甚至可能吗?

说你有

private Set<String> names = new LinkedHashSet<String>();
Run Code Online (Sandbox Code Playgroud)

并且Strings是"迈克","约翰","凯伦".

是否有可能在没有迭代的情况下得到"1"以回答"约翰"的索引是什么?

以下工作正常..有了这个问题,我想知道是否有更好的方法

for (String s : names) {
    ++i;
    if (s.equals(someRandomInputString)) {
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

java iteration set

24
推荐指数
1
解决办法
4万
查看次数