标签: iterator

从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万
查看次数

Scala - 迭代器和takeWhile

我正在运行以下代码:

 val it = List(1,1,1,2,2,3,3).iterator.buffered
 val compare = it.head
it.takeWhile(_ == compare).toList
Run Code Online (Sandbox Code Playgroud)

它返回(1,1,1).但是,如果我这样运行:

val it = List(1,1,1,2,2,3,3).iterator.buffered
it.takeWhile(_ == it.head).toList
Run Code Online (Sandbox Code Playgroud)

我得到(1,1).为什么会这样?是否head在通话时评估,takeWhile结果应该相同?

iterator scala

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

线程"main"java.util.ConcurrentModificationException中的异常

当我运行以下代码时,我得到一个例外.我搜索但找不到任何解决方案.

Exception in thread "main" java.util.ConcurrentModificationException
     at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
     at java.util.HashMap$KeyIterator.next(Unknown Source)
     at com.aybits.software.linkgrabber.Grabber.main(Grabber.java:45)
Run Code Online (Sandbox Code Playgroud)

第45行用于(String linkFromCollection:linksList){

public class Grabber {

static String url;
Document doc;
static Set<String> linksList = new HashSet<String>();
String matchingString ="java2s.com/Code";
static boolean isCrawling = true;
static int STOP_WATCH = 0;

public Grabber(String url){
    Grabber.url = url;
}

public void grabLinks(String urlToCrawl) throws IOException{
    doc = Jsoup.connect(urlToCrawl).timeout(20 * 1000).get();
    Elements links = doc.select("a[href]");

    for (Element link : links) {
        //print(" * a: <%s>  (%s)", link.attr("abs:href"), trim(link.text(), …
Run Code Online (Sandbox Code Playgroud)

java arrays iterator hashset

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