小编Den*_*nis的帖子

包含在智能指针中的类的运算符重载

我一直在尝试在一个包含在智能指针中的类上进行一些运算符重载(*和+).

auto p = std::make_unique<Polynomial<T>>();
Run Code Online (Sandbox Code Playgroud)

当我尝试使用正常重载来重载它时,它显然要求智能指针类型.

编辑,所以:

std::unique_ptr<Polynomial<T>> operator+(const std::unique_ptr<Polynomial<T>>& right);

template<class T>std::unique_ptr<Polynomial<T>> Polynomial<T>::operator+(const std::unique_ptr<Polynomial<T>>& right) {
    //Do stuff
}
Run Code Online (Sandbox Code Playgroud)

而错误:

尝试使用+运算符时出错

那么当类封装在smartpointer中时,如何重载正常运算符呢?

c++ smart-pointers operator-overloading c++14

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

UML类聚合到self

我和我的小组正在制作一个程序,我们有一个树形结构.在这个树结构中,我们已经使得类别可以包含它自己.该计划基于您的费用,所以一个例子可能是:

你买了4个牛奶.这4种牛奶被归入"牛奶"类别.每个牛奶条目的价格(以及其他个人信息)在另一个类别聚合.

诀窍是我们希望类别类能够自己包含它,所以:

"牛奶"类别是"乳制品"类别的一部分,"乳制品"类别是"杂货"类别的一部分.

我们之所以希望它是这样的,是因为我们可以在当时移动批量产品.因此,如果您想将Milk移动到名为"Morning Stuff"的类别,则不必移动每一个,而只需移动整个类别.

图片是我们当前类别类的建模方式,但我们被告知如果没有进一步解释我们就无法做到.UML是否允许这样做?如果没有,我们如何使用UML对其进行建模?

类别UML部分

uml

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

反应滚动组件以查看内部溢出隐藏元素

我有一个包含一系列项目的列表,但我无法让它将另一个项目滚动到视图中。诸如此类的解决方案不太有效,因为我必须上下滚动(基本上,如果列表太大,则每隔一段时间滚动它以显示所有项目)。

我制作了一个codepen来说明react-scroll-to-component的问题,但我对任何库/本机解决方案持开放态度。基本功能只是scrollToComponent(ref, <options>).

据我所知,错误是它尝试在主体上滚动,而不是在实际的容器上滚动。如果删除 div 的高度/溢出属性,它将起作用。

不起作用:

<div
    style={{
    height: `200px`,
    overflow: "hidden"
    }}
>
    {this.state.items.map(item => (
    <Item ref={inst => (this[`ref_${item}`] = inst)} item={item} />
    ))}
</div>
Run Code Online (Sandbox Code Playgroud)

作品:

<div>
    {this.state.items.map(item => (
    <Item ref={inst => (this[`ref_${item}`] = inst)} item={item} />
    ))}
</div>
Run Code Online (Sandbox Code Playgroud)

适合不想去 codepen 的人的完整代码:

class Item extends React.Component {
  render() {
    return <div style={{ padding: `12px` }}>Item {this.props.item}</div>;
  }
}

class List extends React.Component {
  state = {
    items: [
      1,
      2, …
Run Code Online (Sandbox Code Playgroud)

javascript scroll reactjs

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

包含的 CosmosDB Linq 查询不是 IDocumentQuery 类型

我有一个使用 CosmosDB 的项目。起初我使用 EFCore 的预览版,但它确实不够成熟,所以我决定选择Cosmonaut。我有一个 linq 语句,它基本上查看两个属性是否包含子字符串列表 - 基本上我正在尝试执行以下操作:

SELECT * FROM c WHERE CONTAINS(c.Name, ListOfNames) AND CONTAINS(c.Producer, ListOfProducers);
Run Code Online (Sandbox Code Playgroud)

或者一大堆:

foreach(var name in nameList) {
    foreach(var producer in producerList){

        SELECT * FROM c WHERE c.Name == searchedName AND c.Producer == searchedProducer;
    }
}
Run Code Online (Sandbox Code Playgroud)

这与具有以下 Linq 查询的 EFCore SQL 适配器配合使用:

public async void Search(List<string> producers, List<string> names){

 await _store.Entity.Where(x => producers.Any(p => x.Producer.Contains(p)) && names.Any(w => x.Name.Contains(w))).ToListAsync()
}
Run Code Online (Sandbox Code Playgroud)

然而,使用 cosmonaut 库(它包装了 cosmos 中的 DocumentDB 客户端)会出现以下异常:

Input is not of …

c# linq azure-cosmosdb

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

fopen()不在C中工作

我修好了.谢谢你的帮助.

我现在看了很多文章,论坛帖子和主题; 但是,没有人真正解决了我的问题.问题是我fopen("file.txt", "w");没有创建文件.

码:

//
//Includes
#include <stdio.h>

int main ()
{
    FILE *receipt = fopen("receipt.txt", "w");

    //Create file
    fprintf(receipt, "Price: %.2f$", purchase);
    fprintf(receipt, "\nDiscount: %.2f$", discount);
    fprintf(receipt, "\nTax %%: %.2f%%", tax_pct);
    fprintf(receipt, "\nTaxes: %.2f$", tax);
    fprintf(receipt, "\nTotal Price: %.2f$", end_price);
    fprintf(receipt, "\n\nEnd of Receipt.");
    fclose(receipt);

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

我试过投入

if(!receipt) {
    printf("Error!");
}
else {
    fprintf(blabla);
}
Run Code Online (Sandbox Code Playgroud)

但无济于事.

它根本不会创建文件:/在Xcode和Mac上运行.没有警告/通知或其他东西让我知道什么是错的.

*我尝试添加system("pwd")以确定是否它没有保存它应该保存它,但我很难找到该目录(我不知道它是否是临时的,但即使如此文件应该在那里?) .显然,我并没有质疑图书馆的实际有效性,呃,暗示fopen我用的是没有给我我期望的东西?

我不能让我发现任何有用的信息.一切似乎都应该起作用; 我只是没有得到一个文件.如果你不想帮忙就不写,请避免再发表任何评论.*

另外,我删除了所有代码,但实际fopen()fprintf().

c fopen

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

Javascript / ES6查找唯一元素并将其计数为数组

想象一下一个售出商品的假想数组,其中我们奇怪的是仅对商品标题和价值感兴趣:

let items = [
    { title: "Trumping the Horns", value: 5.95 },
    { title: "Rocking about", value: 20.00 },
    { title: "Trumping the Horns", value: 5.95 }
]
Run Code Online (Sandbox Code Playgroud)

我知道我可以很容易地获得具有唯一值的数组:

const uniqueSales = [...new Set(items.map(item => item.title))];
Run Code Online (Sandbox Code Playgroud)

但是,例如,我想知道我售出的每件商品有多少,或者它们的累计价值?所以:

[
    { title: "Trumping the Horns", amount: 2 },
    { title: "Rocking about", amount: 1 }
]
Run Code Online (Sandbox Code Playgroud)

是否有可能映射它们,而不必在该数组上进行一些疯狂的排序和迭代?最好是单线。不在服务器端执行此操作的主要原因是,我对同一数据进行了大量不同的操作,似乎最正确的方法是只发送一次并让客户端处理数据的操作和表示。

javascript arrays

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

建立一个'enter-clickable'链接

如果你有一个正常的形式:

<form method='post' action='#'>
<input type='text' name='#' />
<input type='submit' value='Submit />
</form>
Run Code Online (Sandbox Code Playgroud)

然后您可以填写输入字段,然后按Enter键.但是,我使用链接来完成我的工作:

<form method='post' action='#'>
<input type='text' name='#' />
<a href='#' class='button' onclick='get_form(this).submit();'>Submit</a>
</form>
Run Code Online (Sandbox Code Playgroud)

这就像一个魅力,但是,我希望它继承普通提交字段所具有的"可输入点击".这有可能通过一些JavaScript吗?

html javascript ajax

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

在reactjs中触发ajax成功的父函数

如果您在 onClick 事件(或类似事件)上触发它,我知道如何让父函数运行,但我想在 ajax 成功时触发它。所以几乎这个星座:

var parent = React.createClass({
    someFunction: function(){
        console.log("Parent function triggered");
    },
    render: function(){
        return (
            <Child callback={this.someFunction} />
        );
    }
});

var child = React.createClass({
    getInitialState: function(){
        return { data: "Wat" };
    },
    componentDidMount: function(){
        $.ajax({
            url: "some_url",
            method: 'POST',
            data: this.state.data,
            success: function(response){
                this.props.callback; // This is what I would like to do
            },
            error: function(){
                console.log("Couldn't do it cap'n");
            }
        });
    },
    render: function(){
        return(
            <div>Hello!</div>
        );  
    }
});
Run Code Online (Sandbox Code Playgroud)

我可以通过触发一个事件来做到这一点,但是当我可以访问该功能时,当然应该可以做到这一点。该函数也被正确传递,如果我执行一个函数,我可以将其视为一个函数console.log(this.props.callback);

javascript jquery reactjs

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

解决n!用C(方程误差在某处)

在我学习C的过程中,我遇到了一个导致一些问题的任务.我需要为公式n!的近似值建立一个等式,可以描述为:

N!= n ^ n*e ^( - n)*sqrt(2(2*n + 1/3)*PI),但是我根本无法将我的值与实际值进行核对.5!= 120ish

我可以获得大约148的价值

无法弄清楚我的代码错误在哪里:

#include <stdio.h>
#include <math.h>

#define PI 3.14156
#define E_CONST 2.7828

int main ()
{

double num;
double calc, first, second, third, fourth;

printf("Give an int: ");
scanf("%lf", &num);


first = pow(num , num);

second = pow(E_CONST, -num);

third = (2 * num + 1/3);

fourth = sqrt(2*third*PI);

//calc = first * second * fourth;

calc = pow(num, num) * pow(E_CONST, -num) * sqrt(2*(2*num+(1/3))*PI);
printf("Input: %f", num);

printf("1: …
Run Code Online (Sandbox Code Playgroud)

c math equation

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