我目前正在尝试编写一个函数,该函数将使用字符串流将链表中的数据转换为字符串。我不知道该怎么做,但我已经用最少的功能启动了这个功能。我怎样才能更好地编写我的函数来实现这一点?
SList.cpp:
/*
* SList.cpp
*
* written by Carlos D. Escobedo
* created on 26 Oct
*
* References: programmingforums.org (printing linked lists), stackoverflow
* (.h file linking issues)
*/
#include "SList.h"
SList::SList() {
head = NULL;
size = 0;
}
SList::~SList() {
SList::clear();
delete head;
}
void SList::insertHead(int value) {
if(head == NULL) {
head = new SLNode(value);
} else {
SLNode* temp = new SLNode(value);
temp->setNextNode(head);
head = temp;
}
size++;
}
void SList::removeHead() {
if (head != NULL) {
head = NULL;
size--;
}
}
void SList::clear() {
head = NULL;
}
unsigned int SList::getSize() const {
return size;
}
string SList::toString() const {
stringstream ss;
if (head != NULL) {
ss.str("");
} else {
int i = 1;
for (SLNode* n = head; n != NULL; n->getNextNode()) {
if (i < (size - 1))
ss << n->getContents() << ", ";
ss << n->getContents();
i++;
}
}
return ss.str();
}
如果这不是家庭作业,您应该删除自制的列表,并使用标准容器,如vector或list。
矢量示例
// vector of string
std::vector<std::string> stringVector;
// add strings
stringVector.push_back("text");
stringVector.push_back("more text");
// iterate all
for (auto& str : stringVector)
{
// do something with str
// example:
std::cout << str;
}
c++中有许多标准容器,例如vector、list、deque、array。每个都有不同的优点和缺点。您需要学习它们来编写c++