小编Ice*_*000的帖子

如何重用stringstream

这些线程不回答我:

重置字符串流

你如何清除stringstream变量?

        std::ifstream file( szFIleName_p );
        if( !file ) return false;

        // create a string stream for parsing

        std::stringstream szBuffer;

        std::string szLine;     // current line
        std::string szKeyWord;  // first word on the line identifying what data it contains

while( !file.eof()){

            // read line by line

            std::getline(file, szLine);

            // ignore empty lines

            if(szLine == "") continue;

            szBuffer.str("");
            szBuffer.str(szLine);
            szBuffer>>szKeyWord;
Run Code Online (Sandbox Code Playgroud)

szKeyword将始终包含第一个单词,szBuffer未被重置,无法在任何地方找到关于如何使用stringstream的明确示例.

回答后的新代码:

...
            szBuffer.str(szLine);
            szBuffer.clear();
            szBuffer>>szKeyWord;
...
Run Code Online (Sandbox Code Playgroud)

好的,那是我的最终版本:

        std::string szLine;     // current line
        std::string szKeyWord;  // first word …
Run Code Online (Sandbox Code Playgroud)

c++ parsing text file stringstream

17
推荐指数
2
解决办法
3万
查看次数

如何从索引中获取行和列?

我在这里画了一个巨大的空白.

我发现的一切都是关于从给定的行和列获取索引,但是如何从索引中获取行和列?

这行很简单:(int)(index / width).

试图计算色谱柱时,我的大脑正在遭受大量流血.

对我感到羞耻.

matrix

13
推荐指数
2
解决办法
2万
查看次数

A*最开放的数据结构是什么?

我是第一次开发A*,我使用了priority_queue作为开放集,直到我意识到你需要检查节点是否也在开放集中,而不仅仅是关闭节点.

事实是,你不能迭代一个优先级队列.那么为什么每个人都建议开放集的优先级队列?它还是最好的选择吗?我认为迭代它的唯一方法是制作副本,这样我就可以从中弹出所有内容(成本巨大).

什么是A*上最好的数据结构?

c++ a-star data-structures

7
推荐指数
1
解决办法
4580
查看次数

如何检查stringstream >> string是否会在字符串上放什么?

例如,在解析文本文件时,有时这个文件有这样的东西:

keyword a string here
keyword another string
keyword 
keyword again a string
Run Code Online (Sandbox Code Playgroud)

请注意,第3行有一个空字符串(无空格或空格).问题是当你执行stringstream >> laststring,而stringstream有一个空字符串(null或只是空格)时,它不会覆盖"laststring" ",它什么都不做.无论如何都要事先检查这种情况?我不想创建一个临时空字符串只是为了检查它在stringstream >>之后仍然是空的,似乎很蹩脚.

c++ string stringstream

6
推荐指数
1
解决办法
1万
查看次数

如何使用 Array.sort 按特定元素对结构数组进行排序

很简单,我有一个这样的结构:

struct bla{
  string name;
  float depth;
}
Run Code Online (Sandbox Code Playgroud)

我有一个 bla 数组,我想按深度排序,首先是最大深度。代表应该做什么/返回什么?我找不到任何具体的例子。

c# arrays sorting

5
推荐指数
2
解决办法
2万
查看次数

我是否只能通过其他类成员函数访问成员函数?

据我所知,朋友函数将使函数可以自由访问整个类.我可以通过只让它访问单个成员函数来扩展此友元函数的范围吗?

例如:

class ResourceCache {
    Resource* Create(ResourceDesc) {
        ...
        return ResourceDesc.Create();
    }
}

class ResourceDesc {
    ...
    Resource* Create();
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想ResourceCache::Create只能访问ResourceDesc::Create,但不能访问所有ResourceDesc.

那可能吗?

c++ methods scope friend

2
推荐指数
1
解决办法
645
查看次数

使用纯虚拟覆盖虚拟..这样可以吗?

例:

class IGui{
  protected:
  virtual bool OnClicked(){return false;}
  virtual bool OnHover(){return false;}
  virtual bool OnScrollBarChange(){return false;}
  virtual bool OnTextChange(){return false;}

  ...

}

class IGuiButton: public IGui{
  protected:

  virtual bool OnClicked() = 0;
  virtual bool OnHover(){
    do stuff
    return true;}
  ...
}
Run Code Online (Sandbox Code Playgroud)

关键是要为所有gui类型提供一个commom接口(不需要覆盖所有虚拟内容),然后为按钮提供lite特化,但是对于按钮,theres必须是OnClicked的覆盖..

此外,我认为我应该使那些按钮不应该覆盖私有(所以使用私有继承,并使用那个花哨的"使用Base :: Method;"来使特定的保护?

c++ inheritance pure-virtual

1
推荐指数
1
解决办法
164
查看次数