C++ equivalent to the python code: “for x in iterable:”
本问题已经有最佳答案,请猛点这里访问。
我想在C++中用Python之类的东西做:
1 2 3 4 | nums=[31, 46, 11, 6, 14, 26] nlttf=[] for n in nums: if n<25:nlttf.append(n) |
这是基于循环的范围:
1 2 3 4 5 | SomethingIteratable cont; for (const auto &v : cont) { // Do something } |
像往常一样,
注意:您不能在循环中做任何使您所迭代的容器的迭代器无效的事情。
这是另一种选择,使用C++ 11和Boost库:
1 2 3 4 5 6 7 8 9 10 11 | #include <iostream> #include <boost/foreach.hpp> #include <vector> int main(){ std::vector<int> nums {31, 46, 11, 6, 14, 26}; std::vector<int> nltff; BOOST_FOREACH(auto n, nums) if (n < 25) nltff.push_back(n); BOOST_FOREACH(auto n, nltff) std::cout << n <<""; std::cout << std::endl; return 0; } |
输出:
1 | 11 6 14 |
如果你有C++ 11,那么代码如下:
1 | for (int n: iterator) { /*Do stuff with n*/ } |
If you have C++11 or greater, then you can do it this way.
1 2 3 4 5 6 7 8 9 10 11 12 | #include <iostream> #include <vector> using namespace std; int main() { int num[] = {31, 46, 11, 6, 14, 26}; vector<int>nlttf; for(int n:num){ if(n<25)nlttf.push_back(n); } return 0; } |
根据语句(C++)读取此范围。
有关