Redian新闻
>
学校的Eb1b卡拿到后三个月,能不能去公司?
avatar
学校的Eb1b卡拿到后三个月,能不能去公司?# Immigration - 落地生根
t*a
1
常年用C++,看到两道题要实现iterator
1. class flatten implements iterator{
public flatten(vector> a);
boolean hasNext();
iterator next();
}
2. "Program an iterator for a List which may include nodes or List i.e. *
{0,
{1,2}, 3 ,{4,{5, 6}}} Iterator returns 0 - 1 - 2 - 3 - 4 - 5 - 6"
第一题C++可以实现,第二题除非自己定义node structure,否则感觉无解。主要是C++
里的iterator不能赋NULL,看结束也不能用"iterator==NULL"来判断,得专门维持
collection结束的标识。感觉这种题是专
门给Java的人出的,C++没法搞,起码不能用已有的STL搞,非常坑人。不知道大家有什
么建议。
第一题的C++实现。
class Iterator
{
private:
vector >::iterator itr1;
vector >::iterator itr1end;
vector::iterator itr2;
vector::iterator itr2end;
void Getitr2 ()
{
itr2=itr1->begin();
itr2end=itr1->end();
itr1++;
}
public:
Iterator(vector > &vec)
{
itr1=vec.begin();
itr1end=vec.end();
Getitr2();
}
bool hasNext()
{
return (itr2!=itr2end||itr1!=itr1end);
}
int next()
{
if(itr2==itr2end)
{
if(itr1!=itr1end)
Getitr2();
}
int val=*itr2;
itr2++;
if(itr2==itr2end)
{
if(itr1!=itr1end)
Getitr2();
}
return val;
}
};
avatar
p*o
2
学校的Eb1b卡拿到后三个月,能不能去公司?
avatar
z*g
3
你这样做意义不大,要么就写java,要么就写cpp自己的iterator
avatar
M*1
4
Once you have green card, you can work at the company or any companies.
Are they still Hiring?
avatar
t*a
5
好吧。这种iterator的题还是很坑C++用户的,基本上得自己定义类型定义structure从
头开始写。

【在 z******g 的大作中提到】
: 你这样做意义不大,要么就写java,要么就写cpp自己的iterator
avatar
d*y
6
可以
avatar
w*a
7
G家最喜欢考iterator了
avatar
i*c
8
可以;
要稳妥的话,如果距离485提交日还未满6个月,可等满6个月。

【在 p******o 的大作中提到】
: 学校的Eb1b卡拿到后三个月,能不能去公司?
avatar
B*e
9
http://www.careercup.com/question?id=6246384562864128

*
++

【在 t*****a 的大作中提到】
: 常年用C++,看到两道题要实现iterator
: 1. class flatten implements iterator{
: public flatten(vector> a);
: boolean hasNext();
: iterator next();
: }
: 2. "Program an iterator for a List which may include nodes or List i.e. *
: {0,
: {1,2}, 3 ,{4,{5, 6}}} Iterator returns 0 - 1 - 2 - 3 - 4 - 5 - 6"
: 第一题C++可以实现,第二题除非自己定义node structure,否则感觉无解。主要是C++

avatar
p*o
10
多谢.485已经过了180天了
avatar
a*w
11
用c++和python的怎么办

【在 w****a 的大作中提到】
: G家最喜欢考iterator了
avatar
t*r
12
g的题目真不简单
avatar
t*a
13
感觉有些iterator的题C++基本就没法弄。。。写出来太复杂了,正发愁呢。

【在 a****w 的大作中提到】
: 用c++和python的怎么办
avatar
w*a
14
其实我觉得绝大部分的iterator题用C++写也无压力啊。
nested那个是有点难办。其他的还好。

【在 a****w 的大作中提到】
: 用c++和python的怎么办
avatar
t*a
15
nested那个非要写就用一个pair, 第一个存iterator,第二个存end的标识别。把pair压
入stack
递归调用

【在 w****a 的大作中提到】
: 其实我觉得绝大部分的iterator题用C++写也无压力啊。
: nested那个是有点难办。其他的还好。

avatar
w*a
16
用boost::any更好,真要面到我就跟面试官商量能不能用any。

【在 t*****a 的大作中提到】
: nested那个非要写就用一个pair, 第一个存iterator,第二个存end的标识别。把pair压
: 入stack
: 递归调用

avatar
t*a
17
兄台有空给大家写个例子吧。nest多了我实在想不出好办法,每层都要存一个
collection的end标识,太麻烦了。各种nested vector, map, list. 假如有10层,存
10个iterator还得存10个end的标识,太麻烦。

【在 w****a 的大作中提到】
: 用boost::any更好,真要面到我就跟面试官商量能不能用any。
avatar
w*a
18
感觉我做法好像跟你有点不一样。比如说输入,
那个nested array我的想法大概是类似这样的:
比如输入为,{0, {1, 2}, 3 ,{4, {5, 6}}}
vector nested;
nested.push_back(any((int)0));

vector element1 = {any((int)1), any((int)2)};
nested.push_back(any(element1));

nested.push_back(any(3));

vector element3 = {any(4)};
vector element3_1 = {any(5),any(6)};
nested.push_back(any(element3_1));
迭代器:
NestedIterator it(nested);
while (it.has_next()) {
cout << it.get_next() << " ";
}
我想法是不用stl的iterator。好像跟你思路不太一样。。
当然如果用iterator的话,也可以用vector来存,any只有两种类型,iterator或者
vector

【在 t*****a 的大作中提到】
: 兄台有空给大家写个例子吧。nest多了我实在想不出好办法,每层都要存一个
: collection的end标识,太麻烦了。各种nested vector, map, list. 假如有10层,存
: 10个iterator还得存10个end的标识,太麻烦。

avatar
s*8
19
第二题根据实际需求实现方法差别极大。内存要求,访问要求,指针长度,是否共享子
iterator,node类型等等细节决定实现。不知道细节要求,都是空中楼阁,白说。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。