如何打印由另一个字符串链表组成的链表
How to print a linked list that is made up of another linked list of string?
我决定使用STL列表,尽管我们的老师一直在教我们一个根据书制作的列表。我之所以做这个更改,是因为书中的头文件对我不起作用,很可能是我的错。因此,在网上研究后,我尽我所能了解STL列表的迭代器是如何工作的。以下是我为打印由类型list<list<string>>
定义的链表x而编写的代码。
list < list <string>> x;
while (!inData.fail())
{
//...
string str(cstr);//cstr at this point is the sorted string
bool match = false;
list <string> inner_list;
inner_list.push_back(str);
list<list <string>>::const_iterator cit;
for (cit = x.begin(); !match && cit !=x.end(); advance(cit,1))
{
if (*cit == inner_list)
{
inner_list.push_back(temp2); //temp2 is unsorted string
match = true;
}
}
if (match ==false) x.push_back(inner_list);
}
//printing
list<list <string>>::const_iterator it;
list<string>::const_iterator it2;
for (it = x.begin(); it != x.end(); it++)
{
for (it2 = it->begin(); it2 != it->end(); it2++)
{
cout << *it2 << " ";
}
}
我得到了一个列表迭代器取消引用错误,但我不知道为什么。如果有任何帮助或提示,我将不胜感激。如果有任何不清楚或需要解释的地方,请告诉我。
您可以使用以下代码。希望这对你有帮助。谢谢
typedef long long ll;
ll N,M;
string str;
list<string> innerList;
list<list<string> > Data;
cin >> M; // M holds the no. of nodes containing linked list of strings //
for(ll i=0; i<M; i++){
getchar();
cin >> N; // No. of strings containing in inner linked list
getchar();
for(ll i=0; i<N; i++){
cin >> str;
innerList.push_back(str);
}
Data.push_back(innerList);
innerList.clear();
}
// print data //
for(list<list<string> >::iterator it = Data.begin(); it!=Data.end(); it++){
for(list<string>::iterator iit = (*it).begin(); iit!=(*it).end(); iit++){
cout << (*iit) << " " ;
}
cout << "n";
}
相关文章:
- C++ 创建包含链表和字符串的对象的链接列表时出错
- C++ - 链表字符串重复
- 字符串变成链表,然后检查括号余额
- 使用迭代从链表向后打印字符串
- 编译器如何将链表中的地址字符串在一起?
- 基于给定字符串数据类型的链表删除节点
- 有没有办法将最初作为字符串输入的数字字符数组复制到双向链表中
- C++ 使用链表的自定义字符串类中的重载 + 运算符
- 在链表末尾插入字符串
- 在 C++ 中使用链表按字母顺序对字符串进行排序
- 如何从链表中的字符串中获取第一个字母
- 如何获取链表中的所有"next"节点?构建调用字符串不起作用
- C++ - 链表插入排序(字符串元素)
- 如何让双向链表指向字符串
- 比较c++中链表中的两个字符串
- 如何根据字符串的首字母将其排序到链表中
- 如何打印由另一个字符串链表组成的链表
- 递归反转字符串链表
- 对链表中的字符串进行排序
- C++ int& operator[](字符串键)函数使用链表