我认为大多数编码人员使用的代码如下所示: ArrayList<String> myStringList = getStringList(); for(String str : myStringList) { doSomethingWith(str); } 我怎样才能利用我自己的类的每个循环? 有一个我应该实现的接口?
我总是试图更多地了解我使用的语言(不同的风格,框架,模式等)。 我注意到,我从来没有使用std::for_each所以我想也许我应该开始。 在这种情况下的目标是扩大我的想法,而不是在某种程度上改进代码(可读性,performance力,紧凑性等)。 因此,考虑到这种情况,使用std::for_each进行简单的任务(比如打印出一个向量)是一个好主意: for_each(v.begin(), v.end(), [](int n) { cout << n << endl; } ( [](int n)是一个lambda函数)。 代替: for(int i=0; i<v.size(); i++) { cout << v[i] << endl; } 我希望这个问题似乎没有意义。 我想这几乎要问一个更大的问题了……如果一个中级程序员使用语言function,尽pipe他现在不需要,但是只是为了让他能更好地理解这个function,它。 虽然这个更大的问题可能已经被问到(例如这里 )。
我已经实现了一个淘汰赛foreach绑定,在同一页面的多个模板,其中一个例子在这里给出,我感兴趣的是在找出一个块完成渲染时,我试过afterRender和afterAdd ,但我想它运行为每个元素,而不是整个循环完成后。 <ul data-bind="foreach: {data: Contacts, afterAdd: myPostProcessingLogic}"> <li> <div class="list_container gray_bg mrgT3px"> <div class="list_contact_icon"></div> <div class="contact_name"><span data-bind="text: first_name"></span> <span data-bind="text: last_name"></span></div> <div class="contact_number"><span data-bind="text: value"></span></div> <div class="callsms_container"> <a href="#notification-box" class="notifcation-window"> <div class="hover_btn tooltip_call"> <div class="hover_call_icon"></div> <span>Call</span></div> </a> <a class="sendsms" href="#sendsms" rel="#sendsms"> <div class="hover_btn tooltip_sms"> <div class="hover_sms_icon"></div> <span>SMS</span></div> </a> <a href="#"> <div class="hover_more_btn"></div> </a> </div> […]
哪个更好(或更快),C ++ for循环还是由Qt提供的foreach运算符? 例如,下面的条件 QList<QString> listofstrings; 哪个更好? foreach(QString str, listofstrings) { //code } 要么 int count = listofstrings.count(); QString str = QString(); for(int i=0;i<count;i++) { str = listofstrings.at(i); //Code }
看来在C#和Java循环中很酷的方式是使用foreach而不是C风格的循环。 有一个原因,我应该喜欢这种风格的C风格? 我对这两个案件特别感兴趣,但是请解决你需要解释的问题。 我希望对列表中的每个项目执行一个操作。 我正在search列表中的项目,并希望在find该项目时退出。
我想使用BOOST_FOREACH遍历一个std :: map并编辑值。 我不太明白。 typedef std::pair<int, int> IdSizePair_t; std::map<int,int> mmap; mmap[1] = 1; mmap[2] = 2; mmap[3] = 3; BOOST_FOREACH( IdSizePair_t i, mmap ) i.second++; // mmap should contain {2,3,4} here 当然,这不会改变任何东西,因为我不是通过引用迭代。 所以我用这行代替(按照Boost文档中的例子): BOOST_FOREACH( IdSizePair_t &i, mmap ) 我得到的编译器错误: error C2440: 'initializing' : cannot convert from 'std::pair<_Ty1,_Ty2>' to 'IdSizePair_t &' with [ _Ty1=const int, _Ty2=int […]
如何计算foreach中有多less项? 我想统计总行数。 foreach ($Contents as $item) { $item[number];// if there are 15 $item[number] in this foreach, I want get the value : 15 } 谢谢。
如何循环访问支持IEnumerable的集合?
当一个数组传递给foreach ,输出顺序保证与input相同? 我知道在某些语言中,输出顺序不能保证,因为每个元素都被同时处理。 例如,我传递一个有序数组来foreach写入一个文件。 我想确保数组将被sorting在输出文件中。
当我遇到这种情况时,我可以用javascript来实现,我总是认为如果有一个foreach函数,这将是方便的。 按照foreach我的意思是下面描述的function: def foreach(fn,iterable): for x in iterable: fn(x) 他们只是在每个元素上做,并没有产生或返回的东西,我认为它应该是一个内置函数,应该比用纯Python编写速度更快,但我没有在列表中find它,或者它只是叫另一个名字?或者我只是想念这里的一些观点? 也许我错了,因为调用Python的函数成本高,绝对不是一个好的做法。 而不是一个循环,该函数应该做的循环在其身体看起来像下面这已经在许多python的代码build议中提到: def fn(*args): for x in args: dosomething 但是我认为基于这两个事实,foreach仍然是受欢迎的: 在正常情况下,人们并不在乎performance 有时API不接受可迭代的对象,你不能重写它的源代码。