在转换C++;到javascript 我正在为我的客户构建一个JavaScript指示器,他们给了我从他们的旧系统下面的C++代码。我以前从来没有做过C++程序。下面是C++代码的一部分。我想知道的是在线 if(it3!=d1Swing.end()&&it3->x==h[i].x)--(it1=it2=it3)什么是--(it1=it2=it3)的含义?它在javascript中看起来会是什么样子 vector<PTPoint::PTIndexPoint> dnSwing; list<PTPoint::PTIndexPoint> hq, lq; vector<PTPoint::PTIndexPoint>::iterator it1 = d1Swing.begin(), it2 = d1Swing.begin(), it3 = ++d1Swing.begin(); // // more code here // for (int i = 0; i < period; ++i) { while (!hq.empty() && hq.back().y < h[i].y) hq.pop_back(); hq.push_back(h[i]); while (!lq.empty() && lq.back().y > l[i].y) lq.pop_back(); lq.push_back(l[i]); if (it3 != d1Swing.end() && it3->x == h[i].x) --(it1 = it2 = it3); // // more code here // } // // more code here // p->swap(dnSwing); vector-dnSwing; 列出总部、lq; 向量::迭代器it1=d1Swing.begin(),it2=d1Swing.begin(),it3=++d1Swing.begin(); // //这里有更多代码 // 对于(int i=0;ix==h[i].x)--(it1=it2=it3); // //这里有更多代码 // } // //这里有更多代码 // p->swap(dnSwing);
提前谢谢在转换C++;到javascript 我正在为我的客户构建一个JavaScript指示器,他们给了我从他们的旧系统下面的C++代码。我以前从来没有做过C++程序。下面是C++代码的一部分。我想知道的是在线 if(it3!=d1Swing.end()&&it3->x==h[i].x)--(it1=it2=it3)什么是--(it1=it2=it3)的含义?它在javascript中看起来会是什么样子 vector<PTPoint::PTIndexPoint> dnSwing; list<PTPoint::PTIndexPoint> hq, lq; vector<PTPoint::PTIndexPoint>::iterator it1 = d1Swing.begin(), it2 = d1Swing.begin(), it3 = ++d1Swing.begin(); // // more code here // for (int i = 0; i < period; ++i) { while (!hq.empty() && hq.back().y < h[i].y) hq.pop_back(); hq.push_back(h[i]); while (!lq.empty() && lq.back().y > l[i].y) lq.pop_back(); lq.push_back(l[i]); if (it3 != d1Swing.end() && it3->x == h[i].x) --(it1 = it2 = it3); // // more code here // } // // more code here // p->swap(dnSwing); vector-dnSwing; 列出总部、lq; 向量::迭代器it1=d1Swing.begin(),it2=d1Swing.begin(),it3=++d1Swing.begin(); // //这里有更多代码 // 对于(int i=0;ix==h[i].x)--(it1=it2=it3); // //这里有更多代码 // } // //这里有更多代码 // p->swap(dnSwing);,javascript,c++,Javascript,C++,提前谢谢 这意味着他们以前的程序员喜欢“聪明” 赋值的值是对已赋值对象的引用,赋值关联到右侧 --(it1 = it2 = it3) 是 其目的是将it3的值分配给it2和it1,然后递减it1 (我有预感这可能是未定义的,这是当你在C++中聪明时经常发生的事情) it1显然是为了“落后一步”it2 更合理的写作方式是 it2 = it3; it1 = it2 - 1; (在JavaScript中,我怀疑你需要使用数组索引而不是迭代器来完成同样的事情)。你最好把原始的C++代码发布,然后把你
这意味着他们以前的程序员喜欢“聪明” 赋值的值是对已赋值对象的引用,赋值关联到右侧
--(it1 = it2 = it3)
是
其目的是将it3
的值分配给it2
和it1
,然后递减it1
(我有预感这可能是未定义的,这是当你在C++中聪明时经常发生的事情)
it1
显然是为了“落后一步”it2
更合理的写作方式是
it2 = it3;
it1 = it2 - 1;
(在JavaScript中,我怀疑你需要使用数组索引而不是迭代器来完成同样的事情)。
你最好把原始的C++代码发布,然后把你的尝试翻译成JavaScript。不要翻译。相反,找出代码的作用,并使用JavaScript特性复制行为。谢谢大家的建议。我已经更新了我的问题@Cheers Sandhth.-Alf我删除了javascript部分,因为它不是必需的,也与问题无关。@Rakete1111,谢谢你的建议。我翻译它是为了理解他们的节目。我只是不明白那些语法的逻辑。非常感谢你的回答。我以为是it1=it2,it2=it3,it3-1;是的,我将使用数组和索引。it2 = it3;
it1 = it2 - 1;