小编jog*_*pan的帖子

D语言:返回新创建的关联数组

在工厂函数中,我有时只想返回一个新创建的空关联数组.

一种方法是:

auto make_dict()
{ int[char] dict; return dict; }
Run Code Online (Sandbox Code Playgroud)

有没有办法避免声明局部变量dict?有点像

auto make_dict()
{ return int[char]; }
Run Code Online (Sandbox Code Playgroud)

要么,

auto make_dict()
{ return int[char](); }
Run Code Online (Sandbox Code Playgroud)

要么,

auto make_dict()
{ return new int[char]; }
Run Code Online (Sandbox Code Playgroud)

由于与需要如何声明关联数组相关的原因,这些都不起作用.有办法吗?

associative-array factory d

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

带有char指针的C++类返回垃圾

我创建了一个类"Entry"来处理Dictionary条目,但在我的main()中,我创建了Entry()并尝试cout char类型的公共成员,但我得到了垃圾.当我在调试器中查看监视列表时,我看到正在设置的值,但是一旦我访问这些值,就会有垃圾.任何人都可以详细说明我可能会遗失的内容吗?

#include  <iostream>

using  namespace  std;

class Entry
{
    public:
            Entry(const char *line);
            char *Word;
            char *Definition;
};

Entry::Entry(const char *line)
{
    char tmp[100];
    strcpy(tmp, line);

    Word = strtok(tmp, ",") + '\0';
    Definition = strtok(0,",") + '\0';
}

int  main()
{
    Entry *e = new Entry("drink,What you need after a long day's work");
    cout << "Word: " << e->Word << endl;
    cout << "Def: " << e->Definition << endl;
    cout << endl;

    delete e;
    e = 0;

    return  0; …
Run Code Online (Sandbox Code Playgroud)

c++ string pointers

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

如何在容器中存储具有不同签名的功能对象?

所以想象我们有2个功能(void : ( void ) ),(std::string : (int, std::string))而且我们还可以有10个功能.所有(或其中一些)采用不同的参数类型,并可以返回不同的类型.我们想将它们存储在a中std::map,因此我们得到这样的API:

//Having a functions like:
int hello_world(std::string name, const int & number )
{
    name += "!";
    std::cout << "Hello, " << name << std::endl;
    return number;
}
//and
void i_do_shadowed_stuff()
{
    return;
}

//We want to be capable to create a map (or some type with similar API) that would hold our functional objects. like so:
myMap.insert(std::pair<std::string, fun_object>("my_method_hello", hello_world) )
myMap.insert(std::pair<std::string, fun_object>("my_void_method", i_do_shadowed_stuff) )
//And …
Run Code Online (Sandbox Code Playgroud)

c++ boost

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

阻止文本分类的精确度是否有限?

我已经阅读了词干损害精确度但提高了文本分类中的召回率.这是怎么发生的?当你阻止你增加查询和样本文件之间的匹配数对吗?

text nlp classification stemming

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

如何使用OpenCV的规范化关联?

如何使用OpenCV的规范化关联?任何人都可以提供代码示例吗?

我的问题: 我有一个螺丝头图像,需要找到螺丝的中心.所以我在考虑使用OpenCV相关性,这是一个好主意吗?

您可以在以下链接下找到示例图片:

http://imageshack.us/photo/my-images/685/screw1.png/

请在OpenCV中向我提供相关的代码示例.怎么用?相关函数的输出是什么?相关函数是否会提供螺钉位置?

c++ opencv

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

C++比较2个字符串列表

在Python中,set非常方便用于比较2个字符串列表(请参阅此链接).我想知道在性能方面是否有一个很好的C++解决方案.因为每个列表中有超过100万个字符串.

这是区分大小写的匹配.

c++ performance string-matching set-intersection

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

在C++中返回unique()函数

我遇到了以下函数,它对main()传递的数组进行排序,删除重复项,并返回唯一元素的数量.这是最后一点我很难缠头.

int reduce(long ar[], int n) {
  sort(ar, ar + n);
  return unique(ar, ar + n) - ar; // ??? 
}
Run Code Online (Sandbox Code Playgroud)

据我所知,unique()返回一个指向段末尾的指针,该段存储数组中的唯一值.但我不明白为什么从迭代器中减去数组名会导致int等于唯一元素的数量,或者为什么unique(ar, ar+n)不能对int进行类型转换以获得相同的结果.

c++ arrays iterator stl unique

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

使用可选参数覆盖虚函数

为什么这种印刷23作为输出; 我的期望是33.有人可以对此有所了解.

struct A {
    virtual void f() {cout << "1";}
};

/* Private inheritance */
struct B : private A {
    void f(int x = 0) {cout << "2";}
};

struct C : B {
    void f(){cout << "3";}
};

int main() {
    C obj;
    B &ref = obj;
    ref.f();
    obj.f();
}
Run Code Online (Sandbox Code Playgroud)

c++ virtual inheritance optional-arguments

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

C++将两个变量中较大的一个设置为新值

如果我有两个变量,a并且b,std::max(a,b)返回更高的价值.

是否有可能让这个函数修改哪个变量更大,即if x是第三个变量,

max(a,b) = x;
Run Code Online (Sandbox Code Playgroud)

a==x如果此次通话持有,a则大于b,否则b==x

c++ algorithm max

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

从后缀数组获取LCP的代码如何工作?

有人可以解释这个从后缀数组构建LCP的代码是如何工作的吗?suffixArr[]是一个数组,用于suffixArr[i]保存带有等级i的后缀的字符串中的索引值.

 void LCPconstruct()
{
    int i,C[1001],l;
    C[suffixArr[0]] = n;


    for(i=1;i<n;i++)
    C[suffixArr[i]] = suffixArr[i-1];

    l = 0;

   for(i=0;i<n;i++)
   {
    if(C[i]==n)
        LCPadj[i] = 0;
    else
    {
        while(i+l<n && C[i]+l<n && s[i+l] == s[C[i]+l])
            l++;
        LCPadj[i] = l;

        l = max(l-1,0);
    }
  }

  for(i=0;i<n;i++)
     cout<<LCPadj[suffixArr[i]]<<"\n";


}
Run Code Online (Sandbox Code Playgroud)

c++ algorithm suffix-array

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