我对C++数据结构了解不多,但我想知道你(程序员)使用STL还是编写自己的代码?毕竟STL设计用于执行搜索,替换以及更多数据列表等任务.
有人真的不需要了解链表,二进制搜索等等,因为我可以使用STL.你会建议什么?
我有一个整数向量:
std::vector<int> values = {1,2,3,4,5,6,7,8,9,10};
Run Code Online (Sandbox Code Playgroud)
鉴于这values.size()将永远是均匀的。
我只是想将相邻元素转换为一对,如下所示:
std::vector<std::pair<int,int>> values = { {1,2}, {3,4} , {5,6}, {7,8} ,{9,10} };
Run Code Online (Sandbox Code Playgroud)
即,两个相邻的元件连接成一对。
我可以使用什么STL算法来轻松实现这一点?是否可以通过一些标准算法来实现这一点?
当然,我可以轻松地编写一个老式的索引for循环来实现这一点。但我想知道使用基于范围的for循环或任何其他 STL 算法(例如std::transform等)最简单的解决方案是什么样的。
在 Python 中,我可以这样做:
>>> import itertools
>>> for i, j, in itertools.product(range(3), repeat=2): print i, j
...
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
Run Code Online (Sandbox Code Playgroud)
是否有可能在 C++ 中有一个易于阅读的非增强版本?