标签: iterator

如何在JavaFX中的ObservableList <Tab>中循环

我在JavaFX中工作,我有这个ObservableList<Tab>。您能告诉我如何循环获取列表内容吗?也许是这样的:

ObservableList<Tab>

for (....){

tabPane.getTabs().add(i);

)
Run Code Online (Sandbox Code Playgroud)

java foreach iterator for-loop javafx

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

擦除字符串中的第一行

从字符串中删除第一行的最简单方法是什么?

例:

"ABC\NDEF \宜安"

=>

"高清\宜安"

c++ string iterator

-2
推荐指数
1
解决办法
2611
查看次数

复制迭代器传递给构造函数到vector

我正在尝试复制通过向量中的构造函数传递的值.这是代码:

class Foo {

public:
    template<typename T>
    Foo(T begin, T end)
    {
        std::copy(begin, end, data.begin());        
    }

    void printVector()
    {
        cout << data.size();
    }
protected:
    std::vector<double> data;
};
Run Code Online (Sandbox Code Playgroud)

主要:

std::vector<double> data = {
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10
};

Foo::Foo f(

    std::begin(data),
    std::begin(data)
);

f.printVector();
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么这不起作用?另外,如果我有一个std::vector<vector<double> > data2D矢量,并且,我传入了2D矢量的迭代器,是否可以将其复制到2D矢量?

谢谢

c++ iterator stl

-2
推荐指数
1
解决办法
205
查看次数

我如何使用迭代器通过Vector并找到某些对象?

我的问题是我需要在Vector内容中找到对象,以便我可以将它们打印到面板.但是,当我使用此代码迭代向量时,它不会到达object = it.next()行.因此,当我尝试调用对象paint方法时,它会给我一个空指针,因为对象未初始化.

 public PaintingPanel(Vector contents){
    this.contents = contents;
    Iterator it = contents.iterator();

    while(it.hasNext()){
        if(it.next().equals(ball)){
            ball = (Ball) it.next(); 
        } else if (it.next().equals(bricks)){
            bricks.add((Brick) it.next());
        } else if (it.next().equals(paddle)){
            paddle = (Paddle) it.next();
        }
Run Code Online (Sandbox Code Playgroud)

java iterator vector nullpointerexception

-2
推荐指数
1
解决办法
45
查看次数

如何创建一个循环来获取std :: map的内容

我需要使用关联数组,当听说STL std::map我决定使用它时,我有以下代码.

map<string, string> aArray;
aArray["First"] = "William";
aArray["Second"] = "James";
aArray["Third"] = "Michael";
aArray["Forth"] = "Jayden";
aArray["Fifth"] = "Ashley";

for(std::map<string, string>::iterator it=aArray.begin();it!=aArray.end();++it){
    cout << it << endl;
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何制作有效的循环.
我在其他教程中看到过如下:

cout << it->first << endl;
cout << it->second << endl;
Run Code Online (Sandbox Code Playgroud)

但也有指定的任何成员first,second.

还有一个错误:

  • no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'std::map<std::basic_string<char>, std::basic_string<char> >::iterator {aka std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, std::basic_string<char> > >}')

请向我解释我该怎么做?

c++ iterator stl stdmap

-2
推荐指数
1
解决办法
375
查看次数

Java 8- forEach方法迭代器行为

我最近开始检查新的Java 8功能.

我遇到过这个forEach迭代器 - 迭代了Collection.

我们假设我有一个值为{1,2,3,4,5} ArrayList的类型<Integer>

list.forEach(i -> System.out.println(i));
Run Code Online (Sandbox Code Playgroud)

此语句遍历列表并在其中打印值.

我想知道我将如何指定我希望它仅迭代某些特定值.

就像,我希望它从第二个值开始并迭代到第二个值.或类似的东西 - 或替代元素.

我该怎么做?

foreach iterator java-8

-2
推荐指数
1
解决办法
102
查看次数

Ruby .each因单个元素而失败

我可以很好地迭代一个数组:

def source_names(packages)
    files = []
    packages.each do |package|
        files << (package + ".ads")
        files << (package + ".adb")
    end
    return files
end
Run Code Online (Sandbox Code Playgroud)

但只要传入一个数组(或者可能是任何集合).但是,当只有一个包作为更大脚本的一部分传递给此方法时,这会失败,因为类型是字符串,而不是数组中的单个元素:

在'source_names'中:未定义的方法'each'代表"Generics.Mathematics":String(NoMethodError)

那么我怎么不关心只传递一个元素,它只被识别为字符串?

Clairification:我知道字符串不支持数组方法.我的困惑是为什么我有时会得到一个数组,而一个字符串除了单个元素数组之外.

ruby arrays iterator

-2
推荐指数
1
解决办法
509
查看次数

从向量c ++的向量中删除重复元素

我正在尝试从更大的矢量中删除重复项目
Ex:

6 11  
7 8
6 16 17
Run Code Online (Sandbox Code Playgroud)

我应该得到:

6 11  
7 8
16 17
Run Code Online (Sandbox Code Playgroud)

是)我有的:

vector<vector<int>>B;
vector<vector<int>>::iterator b_list;
vector<vector<int>>::iterator b_it;
vector<int>::iterator b_list_it;
vector<int>::iterator b_it_it;
for (b_list = B.begin(); b_list != B.end()-1; ++b_list)
{
    for (b_it = b_list+1; b_it != B.end(); ++b_it)
    { 
        for (int i = 0; i < (*b_list).size(); ++i)
        {
            for (int j = 0; j < (*b_it).size(); ++j)
            {
                if ((*b_list)[i] == (*b_it)[j])
                {
                    if ((*b_list).size() > (*b_it).size())
                        {   
                            (*b_list).erase((*b_list).begin());
                        }
                        if ((*b_list).size() < (*b_it).size()) …
Run Code Online (Sandbox Code Playgroud)

c++ iterator vector

-2
推荐指数
1
解决办法
833
查看次数

在 Java 中迭代 Set 的最佳方法

情况是我必须迭代一个包含最多 5000 个元素的集合。目前,我正在使用带有迭代器的普通 for 循环。

for (Iterator iterator = allValues.iterator(); iterator.hasNext();) {

     ListMetadataElem element = (ListMetadataElem) iterator.next(); 
     NameValueObject value = new NameValueObject(); 
     value.setId(element.getListMetadataElemSeqId().toString());    
     value.setValue(element.getListMetadataElemNm());   
     abstractVO.getAllListMetadataElems().add(value);       
}
Run Code Online (Sandbox Code Playgroud)

问题是它需要太多时间来迭代 6-7 秒,我必须多次调用相同的循环。

java collections iterator loops set

-2
推荐指数
1
解决办法
8828
查看次数

如果下一个元素存在于迭代器上,那么std :: iterator可以检查吗?

我有一个模板Iterator类,它包含由模板指定的容器的std :: iterator.我没有找到任何方法来检查迭代器上是否存在下一个元素,而不使用容器.

有这样的控制;

vector<int> v; 
vector<int>::iterator itr;
if(itr== v.end()) { /*...*/}
Run Code Online (Sandbox Code Playgroud)

但是我想在我的Iterator课上做这个控制,我的课就像跟着......

  template <class E, class C= vector<E> >
  class Iterator {
  public:
    /*...*/
    bool hasNext()noexcept; 
    /*...*/
  private:
    typename C::iterator itr; // is there any problem with this decleration?
  };

  //implementation of hasNext() function.
  template<class E, class C>
  bool
  Iterator<E,C>::hasNext()noexcept {
    return(itr!=end())?true:false; // this line is wrong. How can I fix it?
  }
Run Code Online (Sandbox Code Playgroud)

c++ iterator stl

-2
推荐指数
1
解决办法
356
查看次数