小编j_r*_*ker的帖子

不同的编译器的C++虚拟继承实现不兼容吗?

我有这样的公共接口层次结构:

struct ISwitchable {
    /* Obtain pointer to another implemented interface of the same instance. */
    virtual int switch(unsigned int interfaceId, void** pInstance) = 0;
};
struct IFoo : public ISwitchable { /* Methods */ };
struct IBar : public ISwitchable { /* Methods */ };
struct IFooBar : public IFoo, public IBar { /* Methods */ };
Run Code Online (Sandbox Code Playgroud)

实现IFooBar的类与工厂函数一起放入dll.客户端代码加载dll,使用工厂函数创建类实例并根据接口使用它们(它们作为头文件提供).

Scheme使用MSVC制作的dll和Borland C++ Builder 6制作的客户端代码可以正常工作.

我将虚拟继承引入层次结构:

struct IFoo : public virtual ISwitchable { /* Methods */ };
struct IBar : public virtual …
Run Code Online (Sandbox Code Playgroud)

c++ c++builder virtual-inheritance visual-c++

5
推荐指数
3
解决办法
1061
查看次数

C++非法数字,简单问题

我正在反对这个错误:

int temp = 0789;

error C2041: illegal digit '8' for base '8'
Run Code Online (Sandbox Code Playgroud)

我能理解的是,编译器将任何以 0 开头的数字(如 0123)理解为八进制。但是我怎么能告诉编译器只在前面加上 0 呢?

c++

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

在Perl中获取file2中没有出现的所有行的最快方法是什么?

我有两个(非常大的)文本文件.在运行时方面,最快的方法是创建第三个文件,其中包含未出现在file2中的所有file1行?

所以如果file1包含:

Sally  
Joe  
Tom  
Suzie

而file2包含:

Sally  
Suzie  
Harry  
Tom

然后输出文件应包含:

Joe

algorithm perl

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

将位图格式(例如PNG)的绘图写入标准输出

是否有可能让R将位图格式(例如PNG)的绘图写入标准输出?如果是这样,怎么样?

具体来说我想跑Rscript myscript.R | other_prog_that_reads_a_png_from_stdin.我意识到可以创建一个临时文件并使用它,但这很不方便,因为可能会同时运行此管道的许多副本,因此需要选择唯一文件名的方案并在之后删除它们.

到目前为止,我已尝试设置outf <- file("stdout")然后运行bitmap(file=outf, ...)或者png(filename=outf, ...),但是两者都抱怨('file' must be a non-empty character stringinvalid 'filename' argument分别),这与这些功能的官方文档一致.

由于我能够说服R的read.table()功能从标准输入读取,我希望有一种方法.我无法通过搜索找到任何相关内容[r] stdout plot,或者stdout"standard output"(用或不带双引号)代替的任何变体,和/或plot替换为png.

谢谢!

plot r stdout

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

按顺序创建最大树

An个不同整数的数组。让的最大元素的索引 BE 。限定在最大树成为上的条目二进制树其中根目录中包含的最大元素,左子是在最大树 [ 0M-1 ]和右子是A [ m + 1n-1 ] 上的最大树。设计用于构建最大树的O(n)算法。

如果我创建一个虚拟示例,结果发现给定的数组是max-tree的INORDER遍历,对于子树的根上的给定条件,它们应该是最大的。

algorithm tree

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

从字符串Perl Regex的后缀中删除Alpha字符

如何从行中删除alpha后缀?即

AA12412BB应返回AA12412

基本上向右看,在最后一个数字字符后删除任何字符

regex perl

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

表达式:字符串迭代器不可解除引用

我在C++中使用std :: string :: iterators很难.这段代码编译很好(仍然没有得到正确的输出,但这是我的错:TODO,修复算法)在Dev-C++中,我没有得到运行时错误.错误是使用Visual Studio Express 2008 C++,我收到指向<xstring>的错误:"Expression:string iterator not dereferencable",并指向<xstring>文件的第112行.

我的调试告诉我,我可能试图在句子输入结束时取消引用,但我看不到哪里.任何人都能解释一下吗?

std::string wordWrap(std::string sentence, int width)
{    
    std::string::iterator it = sentence.begin();

    //remember how long next word is
    int nextWordLength = 0;
    int distanceFromWidth = width;

    while (it < sentence.end())
    {
       while (*it != ' ' && it != sentence.end())
       {
          nextWordLength++;
          distanceFromWidth--;
          it++;
       }

       if (nextWordLength > distanceFromWidth)
       {
          *it = '\n';
          distanceFromWidth = width;
          nextWordLength = 0;
       }

       //skip the space
       it++;

   }

   return sentence;    
}
Run Code Online (Sandbox Code Playgroud)

c++ iterator dereference

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