这些线程不回答我:
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) 我在这里画了一个巨大的空白.
我发现的一切都是关于从给定的行和列获取索引,但是如何从索引中获取行和列?
这行很简单:(int)(index / width).
试图计算色谱柱时,我的大脑正在遭受大量流血.
对我感到羞耻.
我是第一次开发A*,我使用了priority_queue作为开放集,直到我意识到你需要检查节点是否也在开放集中,而不仅仅是关闭节点.
事实是,你不能迭代一个优先级队列.那么为什么每个人都建议开放集的优先级队列?它还是最好的选择吗?我认为迭代它的唯一方法是制作副本,这样我就可以从中弹出所有内容(成本巨大).
什么是A*上最好的数据结构?
例如,在解析文本文件时,有时这个文件有这样的东西:
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 >>之后仍然是空的,似乎很蹩脚.
很简单,我有一个这样的结构:
struct bla{
string name;
float depth;
}
Run Code Online (Sandbox Code Playgroud)
我有一个 bla 数组,我想按深度排序,首先是最大深度。代表应该做什么/返回什么?我找不到任何具体的例子。
据我所知,朋友函数将使函数可以自由访问整个类.我可以通过只让它访问单个成员函数来扩展此友元函数的范围吗?
例如:
class ResourceCache {
Resource* Create(ResourceDesc) {
...
return ResourceDesc.Create();
}
}
class ResourceDesc {
...
Resource* Create();
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我想ResourceCache::Create只能访问ResourceDesc::Create,但不能访问所有ResourceDesc.
那可能吗?
例:
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;"来使特定的保护?