小编ary*_*naq的帖子

声明浮动,为什么默认类型为double?

我很好奇为什么浮动文字必须如此声明:

float f = 0.1f;
Run Code Online (Sandbox Code Playgroud)

代替

float f = 0.1;
Run Code Online (Sandbox Code Playgroud)

为什么默认类型是double,为什么编译器不能通过查看赋值的左侧来推断它是一个浮点数?谷歌只会出现关于默认值的解释,而不是为什么会这样.

java

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

matplotlib中的干图?

我想plot(x, sin(x)),但不是一条线,从(xi,yi)(x_i+1,y_i+1)我想从一个垂直线的每个点(xi,0),以(xi,yi)作为有时点之间的插值是没有意义的(如量化数据)(它看起来要好得多比没有这种垂直线).

很像下面的干线图(来自matlab文档),但可以选择关闭圆圈和点之间的" - ".不幸的是,我自己在matplotlib文档中找不到合适的绘图功能.

干地块

python matplotlib

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

std :: vector <T>的比较运算符无法找到T的比较运算符

以下非常简单的代码将无法编译

#include <vector>
#include <string>


namespace Foobar {
    struct Test {
        std::string f;
        std::uint16_t uuid;
    };
}

bool operator==(const Foobar::Test& lhs, const Foobar::Test& rhs){
    return lhs.f == rhs.f && lhs.uuid == rhs.uuid;
}


int main(){

    std::vector<Foobar::Test> a;
    std::vector<Foobar::Test> b;

    if(a==b){

    }

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

https://godbolt.org/g/zn6UgJ

不会编译我的任何编译器.

而以下

#include <vector>
#include <string>


namespace Foobar {
    struct Test {
        std::string f;
        std::uint16_t uuid;
    };

    bool operator==(const Foobar::Test& lhs, const Foobar::Test& rhs){
        return lhs.f == rhs.f && lhs.uuid == rhs.uuid;
    }
}



int …
Run Code Online (Sandbox Code Playgroud)

c++ dependent-name template-function name-lookup argument-dependent-lookup

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

在python函数中创建一个新函数作为返回?

我想知道在python中是否可以执行以下操作:

def func1(a,b):
   return func2(c,d)
Run Code Online (Sandbox Code Playgroud)

我的意思是假设我用a,b做某事导致一些系数可以定义一个新函数,我想创建这个函数如果a,b的操作确实可行并且能够在func1之外访问它.

一个例子是给定函数f的简单傅立叶级数F(x):

def fourier_series(f,N):
   ...... math here......
    return F(x)
Run Code Online (Sandbox Code Playgroud)

我的意思是我想创建和存储这个新功能供以后使用,也许我想推导它,或者集成或绘图或者我想做什么,我不想发送点x为在fourier_series(或func1(..))中的评估,我只是说fourier_series创建一个带有变量x的新函数,这个函数可以在y = F(3)之后调用...如果我让自己足够清楚?

python

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

Python列表理解,解包和多个操作

我想通过执行以下操作来解压缩我创建的元组,因此结果只是一个简单的列表.我可以在2-3行中获得所需的结果但肯定有一个oneliner list.comp?

x = range(10)
y = [(i,j**2) for i,j in zip(x,x)]
>>>y
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9
, 81)]
>>>
Run Code Online (Sandbox Code Playgroud)

我想要的是 result = [0,0,1,1,2,4,3,9.....]

y = len(x)*[0]
y[::2] = x
y[1::2] = [i**2 for i in x]
Run Code Online (Sandbox Code Playgroud)

给出我想要的但是如果我需要更一般的情况怎么办:

y = [(i, sqrt(i), i**3, some_operation_on_i, f(i), g(i)) for i in x]
Run Code Online (Sandbox Code Playgroud)

例如,我应该能够得到一个像结果一样的直接列表,其中我只指定了一个操作(正方形)来跟随每个i但现在每个i之后有任意数量的操作.

python tuples list-comprehension flatten

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

Eclipse EGIT:当前分支未配置为pull

我和我的一个朋友正在制作一个基于平铺的角色扮演游戏,他必须离开几周,我们决定是时候使用版本控制/ git了.我开始后悔了.几个小时后,我们设法使其工作到以下地步:

  1. 我在github上创建了一个存储库,将他添加为协作者.
  2. 我在eclipse中将项目提交给git,push
  3. 他拉,把它导入他的工作区
  4. 我做了一些改变,提交推动,他拉动了变化.
  5. 他做了一些改变,提交和推动成功.回购中出现变化
  6. 我试图拉变化,得到错误(见图),不成功.
  7. 我做了一些更改,尝试提交,获取错误,不成功.

基本上我们锁定了他可以更新的项目,我不能.如果重要的话,我就是回购所有人.

试图"从上游获取":

试图"拉":

在提交和推送:

我们现在几乎被困住了.我们宁愿不使用Skype来发送文件,在某些时候我们将成为专业人士,这似乎太乏味了.

按照要求: 在此输入图像描述

eclipse git egit

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

copy_if具有不同类型

如果我知道如何提取匹配类型,是否有一种现代方式表达从不同类型的源容器有条件地复制到目标容器的意图?

将问题作为代码示例提出更容易:

#include <algorithm>
#include <vector>

struct Foo {};
struct FooBar{
    bool is_valid;
    Foo foo;
};

std::vector<Foo> get_valid_foos(const std::vector<FooBar>& foobars){
    std::vector<Foo> valid_foos;
    for(const auto& fbar : foobars){
        if(fbar.is_valid)
            valid_foos.push_back(fbar.foo);
    }
    return valid_foos;
}

std::vector<Foo> get_valid_foos_modern(const std::vector<FooBar>& foobars){
    std::vector<Foo> valid_foos;
    std::copy_if(foobars.begin(), foobars.end(), std::back_inserter(valid_foos),
        [](const auto& foobar){
            return foobar.is_valid;
        });
    //?? std::copy requires input and output types to match
    return valid_foos;
}
Run Code Online (Sandbox Code Playgroud)

https://godbolt.org/g/miPbfW

c++ c++14

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

将字符数组转换为字符的arraylist

我遇到了这个问题(向GUI发送密钥),我将字符串转换为字符数组然后我希望characterarray作为一个arraylist.实质上:

String s = "ABC";
char[] cArray = s.toCharArray();
ArrayList<Character> cList = ??
Run Code Online (Sandbox Code Playgroud)

我想cList成为形式的角色arraylist ['A', 'B', 'C'].我不知道如何解压缩然后从中创建一个ArrayList.Arrays.asList() returns a List<char[]>这不是我想要或需要的.

我知道我可以循环并添加到列表中,我正在寻找更简单的东西(肯定存在一个).

java arrays list

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

Java图形库

我正在寻找一个java绘图库,它可能和matplotlib一样好用于python.我已经做了一些关于SO问题的研究,但是很多问题都已经过时了,自从被问到这些问题以来的几年里,它们已经发生了很多变化.提出的建议导致网站表面似乎提供了良好的图书馆,但我的需求是立即的,我没有时间使用它们并找到最好的经验.

所以我要求你的经验,你们中的任何人都可以推荐一个java的图形库,因为matplotlib是python(2013年)吗?

java graphing plot

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

std :: promise外部代码,异步取消

假设您有一些无法修改的外部同步代码,并且您需要它来运行异步,但也要求它可以取消.如果外部代码阻塞,那么我有两个选项.

A)欺骗用户并让我的异步方法在取消时立即返回,很清楚代码仍然在某处运行完成.

B)取消执行

我想为选项B实现一个接口

namespace externallib {
std::uint64_t timeconsuming_operation()
{
    std::uint64_t count = 0;
    for (auto i = 0; i < 1E+10; ++i)
    {
        count++;
    }
    return count;
}
}




template <typename R>
struct async_operation
{

    struct CancelledOperationException
    {
        std::string what() const
        {
            return what_;
        }
    private:
        std::string what_{ "Operation was cancelled." };
    };

    template<typename Callable>
    async_operation(Callable&& c)
    {
        t_ = std::thread([this, c]()
        {
            promise_.set_value(c());  // <-- Does not care about cancel(), mostly because c() hasn't finished..
        });
    }


    std::future<R> …
Run Code Online (Sandbox Code Playgroud)

c++ asynchronous c++11

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