标签: iterator

在Python中,是否有一种使用多个迭代器的列表理解的简明方法?

基本上,我想建立一个列表理解两个迭代器的"笛卡尔积".想想以下Haskell代码:

[(i,j) | i <- [1,2], j <- [1..4]]
Run Code Online (Sandbox Code Playgroud)

产量

[(1,1),(1,2),(1,3),(1,4),(2,1),(2,2),(2,3),(2,4)]
Run Code Online (Sandbox Code Playgroud)

我能以简洁的方式在Python中获得类似的行为吗?

python iterator list-comprehension

8
推荐指数
3
解决办法
2921
查看次数

从begin()到end()迭代时,STL映射是否总是给出相同的顺序?

它似乎来自我的简单测试,但我想知道这是否有保证?

是否存在无法保证订购的条件?

编辑:我特别感兴趣的情况是,如果我填充一个包含大量条目的地图,迭代器的顺序是否会在我的可执行文件的多次运行中相同?如果条目以不同的顺序插入怎么办?

c++ iterator stl map

8
推荐指数
2
解决办法
5225
查看次数

Struts 2嵌套迭代器

我无法相信Struts 2中这么简单的事情看起来很难.

这几乎就像我想用Java做的那样.

for (Parent parent : parents){
  for (Child child: parent.getChildren()){
     System.out.println(child.getName());
  }
}
Run Code Online (Sandbox Code Playgroud)

这应该转换为Stuts标签中接近这个的东西:

<s:iterator var="parent" value="parents">
  <s:iterator var="child" value="parent.children">
     <s:property value="child.name"/>
  <s:iterator>
<s:iterator>
Run Code Online (Sandbox Code Playgroud)

我假设parent.children应该是$ {%(#parent.children)},但我没有找到$ {%的正确组合(#字符使用:-).我还可以使用指向页面的链接来解释何时使用其中的哪一个.

jsp iterator nested struts2 ognl

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

如何使用C++ Boost的regex_iterator()

我使用Boost来匹配字符串中的子串.Io迭代结果,我需要使用regex_iterator().

这是我找到的唯一用法示例,但我不理解回调.有人可以给我一个功能的例子吗?


让我们假设我的输入文本是:

"Hello everybody this is a sentense
Bla bla 14 .. yes 
date 04/15/1986 
"
Run Code Online (Sandbox Code Playgroud)

我想得到:

"Hello" "everybody" "this" "is" "a" "sentense" "bla" "yes" "date"
Run Code Online (Sandbox Code Playgroud)

c++ regex boost iterator

8
推荐指数
1
解决办法
7143
查看次数

什么是迭代类方法next()和__next __()for,有什么区别?

我在python迭代器上有点迷失.我偶尔会使用它们,但我不记得自己创建它.我从某个地方读到我不记得哪里,这样的代码:

class Foo(object):
    def __init__(self):
        self.something = "initial_value"
    def __iter__(self):
        return self
    def next(self):
        # I don't quite remember what was here :S
        return self.something
Run Code Online (Sandbox Code Playgroud)

我猜__iter__()方法应该返回一个迭代器,迭代器应该有一个下一个方法吗?那么__next__()方法怎么样?是不是直接迭代一个类而没有用__iter__()方法返回另一个迭代器?

python iterator

8
推荐指数
2
解决办法
3069
查看次数

用于地图的联合迭代器?

[ 前言:关联的C++容器std::map有点像只有一个关键列的微数据库.Boost bimap将它提升为一个两列的表,在两列中都有查找,但这就像这个类比一样 - 没有"polymap"概括了这个想法.

无论如何,我想继续将地图视为数据库,现在我想知道是否有一个迭代器(或其他解决方案)允许我做几个组成映射的UNION.也就是说,所有的地图都有相同的类型(或者至少是值类型和比较器),我想要一个迭代器将整个集合视为一个大的多重映射(重复的键都可以),让我在正确的联合中遍历它订购.

这样的事情是否存在,也许在Boost中?或者是否容易装备?在伪代码中:

std::map<K, M> m1, m2;
union_iterator<K, M> u(m1, m2)
for(auto it = u.begin(); it != u.end(); ++it) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

例如,如果我们有:

m1 = { { 9:00, "Check in"}, { 12:00, "Break" }, { 16:00, "Check out"} };
m2 = { { 10:30, "coffee" }, { 12:15, "baked beans" }, { 15:00, "lies" } };
Run Code Online (Sandbox Code Playgroud)

然后我想要迭代器生成:

9:00, "Check in"; 10:30, "coffee"; 12:00, "Break"; 12:15, "baked beans"; ...
Run Code Online (Sandbox Code Playgroud)

c++ iterator map

8
推荐指数
2
解决办法
2202
查看次数

HashMap的迭代器是什么意思是快速失败并且HashTable的枚举器不是?

我正在查找这两个类之间的区别,这一点出现在很多答案中,这个博客是来源:http: //javarevisited.blogspot.com/2010/10/difference-between-hashmap-and. HTML

但是我没有完全理解它.有人可以详细说明吗?也许有一个例子?

感谢您的关注!

java iterator hashtable hashmap enumerator

8
推荐指数
2
解决办法
1万
查看次数

C++ zip可变参数模板

这是C++中一个简单的双容器zip函数:

template <typename A, typename B>
std::list<std::pair<A, B> > simple_zip(const std::list<A> & lhs,
                                       const std::list<B> & rhs)
{
  std::list<std::pair<A, B> >  result;
  for (std::pair<typename std::list<A>::const_iterator,
                 typename std::list<B>::const_iterator> iter
       =
       std::pair<typename std::list<A>::const_iterator,
                 typename std::list<B>::const_iterator>(lhs.cbegin(),
                                                        rhs.cbegin());
       iter.first != lhs.end() && iter.second != rhs.end();
       ++iter.first, ++iter.second)
  {
    result.push_back( std::pair<A, B>(*iter.first, *iter.second) );
  }
  return result;
}
Run Code Online (Sandbox Code Playgroud)

如何将此扩展到具有可变参数模板的任意数量的容器?

我想general_zip接受tuplelistS(每个列表可以包含不同类型的),并返回listtuple秒.

c++ iterator tuples variadic-templates c++11

8
推荐指数
2
解决办法
1318
查看次数

OpenCV:矩阵迭代

我是OpenCV的新手.我试图使用迭代器而不是"for"循环,这对我的情况来说太慢了.我试过这样的代码:

MatIterator_<uchar> it, end;
for( it = I.begin<uchar>(), end = I.end<uchar>(); it != end; ++it)
{
    //some codes here
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何转换for循环,如:

for ( int i = 0; i < 500; i ++ )
{
    exampleMat.at<int>(i) = srcMat>.at<int>( i +2, i + 3 )
}
Run Code Online (Sandbox Code Playgroud)

进入迭代器模式?也就是说,如何以迭代器形式执行"i + 2,i + 3"?我只能通过"*it"获得相应的值,但我无法得到它的计数数字.提前谢谢了.

iteration opencv iterator matrix

8
推荐指数
1
解决办法
2万
查看次数

如何创建抛出IOException的Java Iterator

我想实现一个从磁盘/网络中检索对象的迭代器.

Iterator itr = getRemoteIterator();
while(itr.hasNext()) {
    Object element = itr.next();
    System.out.print(element + " ");
}
Run Code Online (Sandbox Code Playgroud)

然而问题是,hasNext()next()该方法的迭代器对象不允许扔IOException.是否还有其他标准接口可以解决此问题?

期望的代码是:

public interface RemoteIterator<E> {
    boolean hasNext() throws IOException;
    E next() throws IOException;
    void remove();
}
Run Code Online (Sandbox Code Playgroud)

java iterator ioexception java-7

8
推荐指数
2
解决办法
3642
查看次数