小编Joh*_*ell的帖子

数学,圆圈,内部点和密度

理论是这样的:我有一个半径为R的圆C和中心S.在这个圆里面,我想放置N(一个"大"数)点,使得点P附近V点的密度相等所有点都在圈子里到处都是.当N变为无穷大并且附近变为P时,极坐标和笛卡尔坐标中的密度函数变为常数.

那么,如果我想用恒定密度的N点填充圆圈,我应该如何处理呢?

random algorithm math

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

将指针传递给函数时隐式类型未知

我正在查看一些已被移植并且无法编译的代码.代码以类似"C"的方式编写,并传递函数指针以便在对象上设置特定的mutator.正在填充的对象声明如下:

class Person
{
    std::string n_;
    int a_;

    public:
        void name( const std::string& n ) { n_ = n; }
        std::string name() const { return n_; }
        void age( const int& a ) { a_ = a; }
        int age() const { return a_; }
};
Run Code Online (Sandbox Code Playgroud)

相当标准的东西.然后我们有一些有趣的功能,我为了简洁而修剪了它们:

typedef void (Person::FnSetStr)(const std::string& s);
typedef void (Person::FnSetInt)(const int& i);

void setMem( const std::string& label, Person* person, FnSetStr fn)
{
    // Do some stuff to identify a std::string within a message from the …
Run Code Online (Sandbox Code Playgroud)

c++ pointers function

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

奇怪的错误C2275 ...非法使用此类型作为具有成员函数模板和lambdas的表达式

摘要

由于某种原因,调用lambda函数的成员函数模板无法使用错误C2275进行编译...非法使用此类型作为表达式,但是当函数移出为自由函数时,它会正确编译.

细节

首先,我有一个基类,将function实例保存在一个vector.只有派生类可以通过调用向其添加function实例.可以通过调用公开调用所有实例.派生类将lambdas添加为实例.那些lambdas将依次用另一个"内部"lambda 调用基类函数模板.模板参数to 是一个异常类型,在执行"内部"lambda时将被显式捕获:vectoradd_externalfunctioninvoke_externalsfunctioninvoke_internalinvoke_internalinvoke_internal

using namespace std;

class base
{
public:
    void invoke_externals()
    {
        for (auto it = funcs_.begin(); it != funcs_.end(); ++it)
        {
            (*it)();
        }
    }

protected:
    void add_external(function<void(void)> func)
    {
        funcs_.push_back(func);
    }

    template <typename T>
    void invoke_internal(function<void(void)> func)
    {
        try
        {
            func();
        }
        catch (const T&){}
        catch (...){}
    }

    vector<function<void(void)>> funcs_;
};
Run Code Online (Sandbox Code Playgroud)

然后我有两个琐碎的自由函数抛出logic_errorruntime_error异常.这些函数将在以下调用的"内部"lambda中使用invoke_internal …

c++ lambda templates c++11

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

为属性分配集合引用时的最佳实践

我非常注重C++思维,需要一些特定C#问题的指导.我们假设我们有以下类:

public class Foo
{
    private IList<Bar> _bars = new List<Bar>(); // Note IList<> vs List<>.

    public IList<Bar> Bars
    {
        get { return _bars; }
        set
        {
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,取而代之的是...,我倾向于清理_bars和论证中AddRange的项目,而不是仅仅分配给.我看到它,方式是,我想保持引用同一个项目,该项目的引用,而不是实际的是引用.setvaluevalue_barsvalueIList<Bar>value

那个错误的想法在我身边吗?你觉得怎么样?

编辑:经过一些评论后,我意识到我必须补充一点,我希望能够在Foo ctor中使用现有的Bars集合并从该集合中初始化_bars.所以,到目前为止,通过该修订和评论,这感觉更好:

public class Foo
{
    private readonly List<Bar> _bars = new List<Bar>();

    public Foo(IEnumerable<Bar> bars)
    {
        _bars.AddRange(bars);
    }

    public IList<Bar> Bars
    {
        get { return _bars; }
    }
}
Run Code Online (Sandbox Code Playgroud)

好点吗?

c# properties

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

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

抽象基类和构造函数可见性

我通常会创建一个基类abstract来发出信号,这是一个基类 - 你无法实例化我!即使其中没​​有抽象方法.

此外,我总是使基类构造函数受到保护,虽然没有真正的功能需要这样做 - 我只想提出另一个观点,即这是一个基类 - 你无法实例化我!

这样做我是否会跳过篮球?你是做什么?

c# abstract-class

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

符合标准的C++编译器是否允许在无符号整数上优化<= 0的分支?

考虑以下代码:

void foo(size_t value)
{
    if (value > 0) { ... }    // A

    if (value <= 0) { ... }   // B
}
Run Code Online (Sandbox Code Playgroud)

由于无符号不能为负,符合C++编译器的标准是否可以优化B语句?或者它只是选择比较0?

c++

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

监控自己进程内的内存使用情况

让我们暂时搁置海森堡.

在我自己的流程中,我将如何监控此流程使用的内存量?

(我可能故意低估了这个问题,梦想有创造性的答案......)

memory windows winapi windows-mobile

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

在拆分字符串中查找所有组

请注意,标题并不能完全反映出我需要做的事情,但因为我的英语并不完美,所以找不到正确的单词.如果有人想要纠正它,请随意.


给定一个包含组的字符串(由n个点分隔)我想得到所有值:group [0]; 组[0].集团[1]; 组[0].集团[1] ..组[N].

示例:输入:Tr.WH.Eu6.ISC将给出:

  • TR
  • Tr.WH
  • Tr.WH.Eu6
  • Tr.WH.Eu6.ISC

现在我有这个代码:

string input = "Tr.WH.Eu6.ISC";
string[] splitStrings = input.Split('.');
List<string> subs = new List<string> { "" };
for (int i = 0; i < splitStrings.Count(); i++)
{
    subs.Add(subs.Last() + "." + splitStrings[i]);
}
subs.Remove("");
Run Code Online (Sandbox Code Playgroud)

我发现它很难看并且输出不完全正常:

  • .Tr
  • .Tr.WH
  • .Tr.WH.Eu6
  • .Tr.WH.Eu6.ISC

我怎样才能使它工作(最好用Linq)?

c# linq string

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

有没有人给这些智能指针(auto_any,scoped_any,shared_any)一个试驾?

我正在调查具有Windows CE和Mobile"共享"功能的智能指针,其中VS 2008 tr1 std::shared_ptr无法使用(由于与CE上没有的v.9 dll的链接,显然,如果我理解正确的话).

有一篇半旧的MSDN杂志文章,其中包含来自Microsoftie(Eric Niebler)的消息:使用我们的自定义C++类实现更可靠的资源管理.

他的推理,设计和实现shared_any看起来很稳固,但我想知道是否有人在任何平台(不一定是WinCe/WM)上实际测试过该批次?

c++ memory smart-pointers

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

我可以在便携式库中使用什么定义来判断编译器是否是Microsoft的?

我有一个可移植的库,如果在Visual Studio下编译或只使用Microsoft的C/C++编译器,在一个地方需要做X,否则需要Y. 我#define应该寻找什么?

c c++ cross-platform

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