考虑以下情况:
std::vector<int> a {1, 2, 3};
std::vector<int> b {1, 2, 3, 4};
auto it = b.begin();
auto res = std::inner_product(a.begin(), a.end(), it, 0); (*)
有没有办法将it
传递给std::inner_product
,以便在(*)完成执行后it
将指向4.(即*it == 4
)?
答案 0 :(得分:2)
假设scanner.next();
实现以线性方式递增第二个迭代器,您可以编写一个scanner.nextLine();
的包装类,它可以传递给std::inner_product
并且这个包装器(更新迭代器)间接地将指向一个新的位置。
但强烈建议不要采用这种方式,因为:
std::vector<int>::iterator
应该是首选
为你的情况。答案 1 :(得分:0)
正如Mohit Jain所说,没有标准保证的可移植方式来做到这一点,因为您必须假设$("#grade_contamina a").on("click", function() {
console.log($(this).parents("li")[0].id)
});
实施恰好将<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="grade_contamina">
<ul id="ul_element">
<!---My first li--->
<li id="first_id">
<p>
Apple
</p>
<!---Button for apple---->
<span class="fruits" id="btn_apple">
<a class="btn_send_once">Send to Students</a>
<a class="btn_delete_once" >Delete</a>
<a class="btn_download_once">Download</a>
</span>
</li>
<!---My second li--->
<li id="second_id">
<p>
Grapes
</p>
<!---Button for grapes---->
<span class="fruits" id="btn_grapes">
<a class="btn_send_once">Send to Students</a>
<a class="btn_delete_once" >Delete</a>
<a class="btn_download_once">Download</a>
</span>
</li>
</ul>
</div>
留在您想要的地方,但您不需要写一个单独的包装类:
inner_product
(ideone.com上的Here)