STL中的列表 用于表示C++中的链表。如何创建嵌套列表。我们有n个列表,我们需要创建一个包含n个列表的列表。
null
例如:
Input : Number of lists: 2 1st list: {1 2} 2nd list: {3 4 5 6 Output : [ [ 1 2 ] [ 3 4 5 6 ] ] Input : Number of lists: 3 1st list : {0 1} 2nd list : {1 2 3} 3rd list : {2 3 4 5} Output : [ [ 0 1 ] [ 1 2 3 ] [ 2 3 4 5 ] ]
// c++ program for nested list #include <iostream> #include <iterator> #include <list> using namespace std; void printNestedList(list<list< int > > nested_list) { cout << "[" ; // nested_list`s iterator(same type as nested_list) // to iterate the nested_list list<list< int > >::iterator nested_list_itr; // Print the nested_list for (nested_list_itr = nested_list.begin(); nested_list_itr != nested_list.end(); ++nested_list_itr) { cout << " [" ; // normal_list`s iterator(same type as temp_list) // to iterate the normal_list list< int >::iterator single_list_itr; // pointer of each list one by one in nested list // as loop goes on list< int >& single_list_pointer = *nested_list_itr; for (single_list_itr = single_list_pointer.begin(); single_list_itr != single_list_pointer.end(); single_list_itr++) { cout << " " << *single_list_itr << " " ; } cout << "]" ; } cout << "]" ; } // Driver code int main() { // instead integer type can have any data type list<list< int > > nested_list; list< int > single_list; int n, m, num; // number of lists in nested list n = 3; for ( int i = 0; i < n; i++) { // number of elements in list m = i + 2; for ( int j = 0; j < m; j++) { num = i + j; single_list.push_back(num); } nested_list.push_back(single_list); // delete all elements from single_list single_list.erase(single_list.begin(), single_list.end()); } printNestedList(nested_list); return 0; } |
输出:
[ [ 0 1 ] [ 1 2 3 ] [ 2 3 4 5 ] ]
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END