小编new*_*gre的帖子

将多个集合合并为一个逻辑集合?

假设,我有一个恒定数量的集合(例如3个ArrayLists)作为类的成员.现在,我想将所有元素公开给其他类,以便它们可以简单地遍历所有元素(理想情况下,只读).我正在使用guava集合,我想知道如何使用guava iterables/iterators来生成内部集合的逻辑视图,而无需制作临时副本.

java collections guava

107
推荐指数
3
解决办法
11万
查看次数

C#图形图库?

我正在寻找一个允许我绘制CFG(控制流图)的(免费)库.像yFiles这样的东西,但免费或最好是开源?理想情况下,此库将允许用户导航图形(并修改它),即图形不仅仅是静态的先验渲染位图.想法?

更新:
Glee与上面提到的QuickGraph库结合使用似乎非常好用.谢谢

Update2: Graph#似乎是目前最强大的库.还有一个很好的教程如何使用它.

c# graphics graph-theory

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

如何像std C++流一样使用我的日志类?

我有一个工作的记录器类,它将一些文本输出到richtextbox(Win32,C++).问题是,我总是这样使用它:

stringstream ss;  
ss << someInt << someString;  
debugLogger.log(ss.str());
Run Code Online (Sandbox Code Playgroud)

相反,像流一样使用它会更方便:

debugLogger << someInt << someString;
Run Code Online (Sandbox Code Playgroud)

有没有比将内容转发到内部stringstream实例更好的方法?如果这样做,我什么时候需要冲洗?

c++ logging stream

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

演示(FX)编码教程?

我正在寻找一些很好的教程,让我开始进行演示编码.我有一些CG的背景,但这都是理论上的.
有很多常规的3D编程教程,但我特别想找一些旧学校的2D东西.

language-agnostic demoscene

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

如何同步SVN修订版和EXE/DLL文件的版本资源?

假设我有一些构建exe或dll文件的C++项目.该项目被检入SVN存储库.我想自动将SVN的修订版本与我的exe/dll文件中嵌入的版本资源同步,即版本应该是$ major.$ minor.$ svn_revision.
关于如何实现这一点的任何想法?有没有开箱即用的解决方案?

c++ svn build-automation resources

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

通过BOOST_FOREACH使我的C++类可迭代

我有一个类,我想要公开一个结构列表(它只包含一些整数).我不希望外部修改这些数据,只是迭代它并读取它们示例:

struct TestData
{
  int x;
  int y;
  // other data as well
}

class IterableTest
{
  public:
    // expose TestData here
};
Run Code Online (Sandbox Code Playgroud)

现在在我的代码中我想像我这样使用我的类:

IterableTest test;
BOOST_FOREACH(const TestData& data, test.data())
{
  // do something with data
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了这篇关于成员空间的文章http://accu.org/index.php/journals/1527.但是,我不想(或不能)将所有TestData保存在内部向量中.这是因为类本身并不拥有存储,即实际上没有可以由类直接访问的底层容器.但是,类本身可以查询外部组件以获取next,previous或iith元素.

所以基本上我希望我的班级表现得好像它有一个集合,但事实上它没有一个.有任何想法吗?

c++ iterator design-patterns

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

如何从c/c ++中的Windows PC获取独特的硬件/软件签名

我正在使用c ++开发一个小型Windows应用程序,我想在PC上获得某种软件/硬件指纹,以便我可以允许该应用程序仅在某些PC上运行.

我知道应用程序可以破解,但我真的很有兴趣实现这样的东西.
任何想法我怎么能实现这一目标?

c++ windows copy-protection

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

在 boost::log 中使用格式语法

boost::log进入官方 boost 库之前(从 1.54 开始),我使用的是带有以下代码的sourceforge 版本

boost::log::formatters::fmt_format<char> simpleFormat(
      boost::log::formatters::format("%1% %2%") % 
      boost::log::formatters::date_time<boost::posix_time::ptime>(    
          "TimeStamp", boost::log::keywords::format = "%H:%M:%S") %    
      boost::log::formatters::message());
Run Code Online (Sandbox Code Playgroud)

后来:

log_sink->locked_backend()->set_formatter(simpleFormat)
Run Code Online (Sandbox Code Playgroud)

但是,我根本无法弄清楚如何在使用流语法的情况下使用新boost::logAPI表达上述日志记录格式(我想坚持上述格式样式语法)。有任何想法吗?

更新:这是我得到的编译器错误(使用 gcc 4.6.3):

> boost/boost/log/expressions/formatters/date_time.hpp: In constructor
> ‘boost::log::v2s_mt_posix::expressions::format_date_time_terminal<T,
> FallbackPolicyT, CharT>::format_date_time_terminal(const
> boost::log::v2s_mt_posix::attribute_name&, const fallback_policy&,
> const string_type&) [with T = boost::posix_time::ptime,
> FallbackPolicyT = boost::log::v2s_mt_posix::fallback_to_none, CharT =
> char,
> boost::log::v2s_mt_posix::expressions::format_date_time_terminal<T,
> FallbackPolicyT, CharT>::fallback_policy =
> boost::log::v2s_mt_posix::fallback_to_none,
> boost::log::v2s_mt_posix::expressions::format_date_time_terminal<T,
> FallbackPolicyT, CharT>::string_type = std::basic_string<char>]’:
> /boost/boost/log/expressions/formatters/date_time.hpp:229:94: …
Run Code Online (Sandbox Code Playgroud)

c++ logging boost

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

C++移位运算符优先级怪异

请考虑以下代码:

typedef vector<int> intVec;

intVec& operator<<(intVec& dst, const int i) {
    dst.push_back(i);
    return dst;
}
int intResult0() {
    return 23;
}
int intResult1() {
    return 42;
}

// main
intVec v;
v << intResult0() << intResult1();
Run Code Online (Sandbox Code Playgroud)

奇怪的是,编译器生成代码,该代码评估intResult1 BEFORE intResult0(使用最新的VC和gcc进行测试).为什么编译器会这样做?通过这样做,评估和使用各个值之间的时间(不必要地)增加(α),即首先获取42,但最后推送到矢量.C++标准是否规定了这一点?

c++ operator-overloading

4
推荐指数
3
解决办法
739
查看次数

在C宏中强制空白?

我有以下宏来定义一个特殊命名方案后的新函数:

#define CREATE_HOOK_STUB( func ) void ##func_STUB() { /* some code*/ }
Run Code Online (Sandbox Code Playgroud)

但是,预处理器始终连接void,##func_STUB但我显然希望它保留该位置的空白.

我知道我可以在前面添加一些字符串##func_STUB,但这不是我想要的.我该如何解决这个问题?

c macros stringification c-preprocessor

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