小编rlb*_*ond的帖子

如何在TortoiseSVN中找回已删除的文件?

我们的存储库中有一个文件,我们之前删除了几个修订版.如何在不恢复整个存储库的情况下使用TortoiseSVN将其恢复?

svn tortoisesvn

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

C++类"帮助函数"应该是免费的成员,免费或匿名吗?

所以,我有一堂课.这是一个有用的课程.我非常喜欢.我们称之为MyUsefulClass. MyUsefulClass有一个公共方法.我们称之为processUsefulData(std::vector<int>&).

现在假设processUsefulData真的做了两件事,我想从中重构它:

std::vector<int> MyUsefulClass::processUsefulData(std::vector<int>& data)
{
    for (/*...*/)
    {
        for (/*...*/)
        {
            // a bunch of statements...
        }
    }

    for (/*...*/)
    {
        for (/*...*/)
        {
            // a bunch of other statements...
        }
    }
    return data;
}
Run Code Online (Sandbox Code Playgroud)

现在,我想分割这些职责并重写代码

std::vector<int> MyUsefulClass::processUsefulData(std::vector<int>& data)
{
    doProcessA(data, dataMember_);
    doProcessB(data, otherDataMember_);
    return data;
}
Run Code Online (Sandbox Code Playgroud)

所以,我不知道我是否应该让两个辅助函数自由函数或成员函数,并且每个函数都适合.我也不知道是否最好在匿名命名空间中创建它们.有谁知道这样做的好时机?

c++ function

16
推荐指数
2
解决办法
9469
查看次数

2d索引的良好哈希函数

我有一个名为Point的结构.点非常简单:

struct Point
{
    Row row;
    Column column;

    // some other code for addition and subtraction of points is there too
}
Run Code Online (Sandbox Code Playgroud)

Row并且Column基本上是美化int的,但我厌倦了意外地将输入参数转换为函数并给它们每个包装类.

现在我使用了set一些点,但重复查找确实减慢了速度.我想切换到unordered_set.

所以,我想有一个unordered_setPoint秒.通常,该集合可能包含例如80x24终端上的每个点= 1920点.我需要一个好的哈希函数.我想出了以下内容:

struct PointHash : public std::unary_function<Point, std::size_t>
{
    result_type operator()(const argument_type& val) const
    {
        return val.row.value() * 1000 + val.col.value();
    }
};
Run Code Online (Sandbox Code Playgroud)

但是,我不确定这是否真的是一个很好的哈希函数.我想要快速的东西,因为我需要很快进行很多查找.我可以使用更好的哈希函数,还是可以的?

c++ hash

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

自动缩放图像以匹配文本高度

我有一个图像,我想与一些文本内联使用,但我需要它来匹配文本高度.我知道它可能是类似的<img src="img.jpg" height=16>甚至是偶数<img src="img.jpg" height="100%">,但前者不会随着文本大小而缩放,而后者似乎使它成为div的大小,而不是文本高度.有人可以帮忙吗?

示例HTML:

<body>
This is a test <img src="img.jpg">
</body>
Run Code Online (Sandbox Code Playgroud)

html javascript css image

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

从MATLAB调用C++代码?

由于严重依赖模板,我有一些代码需要用C++编写代码.我想从MATLAB中调用这个代码:基本上,我需要将一些参数传递给C++代码,并让C++代码将一个矩阵返回给MATLAB.我听说这可能是一个叫做MEX文件的东西,我还在调查.但是我不确定这些MEX文件支持什么.是否支持所有C++(例如STLBoost)?这有多难?

编辑:我不需要任何共享库,只需要像标题一样的东西shared_ptr.

c++ matlab

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

有没有办法将MATLAB工作区推入堆栈?

有谁知道在MATLAB中是否可以有一堆工作空间?至少可以说非常方便.

我需要这个用于研究.我们有几个脚本以有趣的方式进行交互.函数有局部变量,但没有脚本......

workspace matlab stack

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

C++中的Inversion of Control和Dependency注入有什么区别?

我最近一直在阅读关于C++中DI和IoC的内容.我有点困惑(即使在此处阅读相关问题后),并希望得到一些澄清.

在我看来,熟悉STL和Boost导致使用依赖注入相当多.例如,假设我创建了一个函数,它找到了一系列数字的平均值:

template <typename Iter>
double mean(Iter first, Iter last)
{
    double sum = 0;
    size_t number = 0;
    while (first != last)
    {
        sum += *(first++);
        ++number;
    }
    return sum/number;
};
Run Code Online (Sandbox Code Playgroud)

这是(即使用迭代器而不是访问集合本身)依赖注入?控制倒置?都不是?

让我们看另一个例子.我们有一节课:

class Dice
{
public:
    typedef boost::mt19937 Engine;
    Dice(int num_dice, Engine& rng) : n_(num_dice), eng_(rng) {}
    int roll()
    {
        int sum = 0;
        for (int i = 0; i < num_dice; ++i)
            sum += boost::uniform_int<>(1,6)(eng_);
        return sum;
    }
private:
    Engine& eng_;
    int n_;
};
Run Code Online (Sandbox Code Playgroud)

这似乎是依赖注入.但是控制倒置了吗?

另外,如果我遗失了某些东西,有人可以帮助我吗?这似乎是做事的自然方式,所以如果这就是依赖注入,为什么人们很难使用它呢?

c++ dependency-injection inversion-of-control

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

c ++ typedef另一个类的枚举?

所以这是我的问题:

struct A
{
    enum A_enum
    {
        E0,
        E1,
        E2
    };
};

struct B
{
    typedef A::A_enum B_enum;
    bool test(B_enum val)
    {
        return (val == E1); // error: "E1" undeclared identifier
    }
};
Run Code Online (Sandbox Code Playgroud)

我特意不想说A::E1.如果我尝试,B_enum::E1我会收到一个非标准的警告.有没有办法做这样的事情?

c++ enums typedef

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

修改std :: set的元素会发生什么?

如果我通过迭代器更改std :: set的元素,我知道它不是"重新插入"或"求助",但有没有提到它是否触发了未定义的行为?例如,我认为插入会搞砸.有没有具体提到会发生什么?

c++ collections stl set

12
推荐指数
2
解决办法
9537
查看次数

c ++测试如果2组是不相交的

我知道STL有set_difference,但我需要知道2 sets是否是不相交的.我已经分析了我的代码,这使我的应用程序放慢了很多.有没有一种简单的方法可以看出2套是不相交的,还是我只需要自己编写代码?

编辑:我也试过,set_intersection但它花了相同的时间......

c++ algorithm stl disjoint-sets

12
推荐指数
2
解决办法
5149
查看次数