我在JavaFX中工作,我有这个ObservableList<Tab>。您能告诉我如何循环获取列表内容吗?也许是这样的:
ObservableList<Tab>
for (....){
tabPane.getTabs().add(i);
)
Run Code Online (Sandbox Code Playgroud) 从字符串中删除第一行的最简单方法是什么?
例:
"ABC\NDEF \宜安"
=>
"高清\宜安"
我正在尝试复制通过向量中的构造函数传递的值.这是代码:
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矢量?
谢谢
我的问题是我需要在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) 我需要使用关联数组,当听说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> > >}')请向我解释我该怎么做?
我最近开始检查新的Java 8功能.
我遇到过这个forEach迭代器 - 迭代了Collection.
我们假设我有一个值为{1,2,3,4,5} ArrayList的类型<Integer>
list.forEach(i -> System.out.println(i));
Run Code Online (Sandbox Code Playgroud)
此语句遍历列表并在其中打印值.
我想知道我将如何指定我希望它仅迭代某些特定值.
就像,我希望它从第二个值开始并迭代到第二个值.或类似的东西 - 或替代元素.
我该怎么做?
我可以很好地迭代一个数组:
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:我知道字符串不支持数组方法.我的困惑是为什么我有时会得到一个数组,而一个字符串除了单个元素数组之外.
我正在尝试从更大的矢量中删除重复项目
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) 情况是我必须迭代一个包含最多 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 秒,我必须多次调用相同的循环。
我有一个模板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)