调试时间问题

时间:2016-11-08 05:24:19

标签: c++

我创建了一个数据包结构。我读了一个文件的文本并转换为字典顺序。为了做到这一点,我必须将两个字符串转换为小写以比较它们(一个用于当前节点,一个用于它旁边的节点)。但我的问题是,当我有大文本文件时,它必须继续将我插入的每个节点的字符串转换为小写,有时需要很长时间才能处理。我想知道是否有更好的方法来调整它,这样我就可以增加性能时间。

void insert(string v)
{
    if(head == NULL){ //empty list
        head = new BagNode;
        head->dataValue = v;
        //head->dataCount = 0;
        head->next = NULL;

    }
    else
    {
            BagNode * n = new BagNode;      // new node
            n->dataValue = v;
            BagNode * current = head;           //for traversal
            //current = head;
            n->dataCount = 0;
                if(!isBefore(current->dataValue, v))        //new head
                {
                    n->next = head;
                    head = n;
                }
                else{           //mid and tail insert
                    while(current->next && isBefore(current->next->dataValue,v))
                    {
                        current = current->next;
                    }
                    n->next = current->next;
                    current->next = n;

                }   
         }      
    }

比较两个节点

 bool isBefore(string a, string b) 
 {
      transform(a.begin(), a.end(), a.begin(), ::tolower);
      transform(b.begin(), b.end(), b.begin(), ::tolower);
        if(a == b) {
            return true;
        }
        else {
            return false;
        }
  }

1 个答案:

答案 0 :(得分:0)

使用g ++或gcc

在C或C ++中调试程序

1)gcc/g++ -g myprogram.c/myprogram.cpp

结果将是a.out

2)gdb a.out

我希望它可以帮到你!