小编Taz*_*ngo的帖子

运算符[] C++ Get/Set

我在告诉运算符[]的get和set之间的区别时遇到了麻烦.我需要告诉这些函数调用之间的区别.

cout << data[5];
data[5] = 1;
Run Code Online (Sandbox Code Playgroud)

我用Google搜索了,我找到的答案仍然无济于事.人们建议通过添加const来使方法的签名不同.我做到了,他们仍然都使用相同的方法.

有我使用过的签名:

const T& operator[](unsigned int index) const;
T& operator[](unsigned int index);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c++

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

AOSP 系统服务与服务差异

我试图更好地理解这些差异,以便我可以评估是否应该实现系统服务或服务。我从文档中发现的差异如下:

系统服务

  1. 在系统服务器中启动
  2. 添加到ServiceManager
  3. 被认为是强制性的,并在失败时软重启设备
  4. 更多权限?(不确定它能做什么而服务不能做什么)

服务

  1. 初始化并开始使用意图?

两者之间还有什么不同吗?我正在修改 AOSP 以包含我自己的服务,提供的任何其他信息将有助于帮助我做出决定。

android android-source

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

什么时候我们应该使用结构而不是枚举?

结构和枚举彼此相似.

什么时候使用结构而不是枚举更好(反之亦然)?有人能给出一个明确的例子,使用结构优于使用枚举吗?

enums struct rust

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

朴素贝叶斯和Logistic回归误差率

我一直试图找出错误率与这两种模型中的特征数量之间的相关性.我观看了一些视频,视频的创建者说,简单的模型可能比复杂的模型更好.所以我认为我拥有的功能越多,错误率就越大.这在我的工作中并不是真的,当我的功能较少时,错误率就会上升.我不确定我是否做错了,或者视频中的那个人犯了错误.有人可以解释一下吗?我也很好奇功能如何与Logistic回归的错误率相关.

machine-learning

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

如何迭代列表并从中删除?

我在使用List迭代器时遇到了很多麻烦,之前我问过一个问题但是无法得到我想要的解决方案.

我有一个循环列表,我必须用节点n +替换节点n的值(步骤).然后我必须擦除节点n +(步骤).当我擦除它时,将迭代器放在擦除元素之后的元素中.我需要在节点n处返回迭代器.我怎么能这样做因为每当我擦除n +(步骤)我得到一个无效的迭代器.我的输入是5和2.

如果没有办法从列表中进行迭代和擦除,请告诉我是否有更好的数据结构.我想过使用Vector,但我必须将元素向下移动,如果有很多元素,那将会很昂贵.

#include "roulette.h"
#include <iostream>

uint roulette(uint people, uint step)
{
    std::list<uint>::iterator iterator;
    for(uint i = people; i > 0; i--)
        gl_myList.push_front(i);

    iterator = gl_myList.begin();
    while(people > 1)
    {
        iterator = advanceList(iterator, step - 1);
        uint replaceValue = *iterator; // Node n's value

        auto tempIterator = advanceList(iterator, step);
        uint newValue = *tempIterator; //Node n + step value

        iterator = gl_myList.erase(tempIterator);
        //Makes it past the erase function ONCE.

        //Puts the iterator back to the correct spot, …
Run Code Online (Sandbox Code Playgroud)

c++ iteration containers c++11

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

避免向下倾斜

在使用接口时如何防止向下转换?我已经在stackoverflow上读了一些答案,如果你不得不贬低那么你很可能有一个弱的界面.那你们怎么样呢,这是正确的方法?我有一个具体的例子,我想知道如何正确避免向下转发.在我的示例中,我有一个用于传递数据的接口,但具体实现可能包含唯一属性.在类A和BI中,需要向下转换为DataType1或DataType2,因为它们可以返回不同的属性类型.

struct IData
{
    virtual ~IData();
};

struct IAction
{
    virtual ~IAction();
    virtual void setup(IData& data) = 0;
};

class DataType1 : public IData
{
    int data1;
public:
    DataType1();
    int getData1();
};

class DataType2 : public IData
{
    std::string data2;
public:
    DataType2();
    std::string getData2();
};

class A : public IAction
{
public:
    A();
    void setup(IData& data) override;
}

class B : public IAction
{
public:
    B();
    void setup(IData& data) override;
}
Run Code Online (Sandbox Code Playgroud)

c++ c++11 c++14

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

无法获取 Rocket 的 EventStream!使用借用的价值观

这是一个与火箭箱相关的非常具体的问题。我不确定这是板条箱的问题还是我只是做了一些明显错误的事情。我在生命周期和宏方面不是最好的。

\n

我正在尝试设置 SSE 连接,并且希望宏借用传递到函数中的值。

\n

我最初按照他们的教程设置 SSE,并编写了以下代码......

\n
#[get("/my/stream")]\npub fn my_stream(config: &State<config::Config>, _pool: &State<Pool<Sqlite>>) -> EventStream![] {\n    EventStream! {\n        let mut id = 0;\n        let mut interval = time::interval(Duration::from_secs(1));\n        loop {\n            yield Event::data("test data").event("test").id(id.to_string());\n            interval.tick().await;\n            id += 1;\n        }\n    } \n}\n
Run Code Online (Sandbox Code Playgroud)\n

这编译并工作得很好,但是当我尝试做一些简单的事情并借用 config 或 _pool 时,它会抱怨宏中的生命周期。编译器非常清晰,并且与他们文档中的内容相匹配。所以我将生命周期添加到返回值中。

\n
#[get("/my/stream")]\npub fn my_stream(config: & State<config::Config>, _pool: &State<Pool<Sqlite>>) -> EventStream![Event + '_] {\n    EventStream! {\n        let _test = config.database.clone();\n        let mut id = 0;\n        let mut interval = time::interval(Duration::from_secs(1));\n        loop {\n            yield …
Run Code Online (Sandbox Code Playgroud)

rust rust-rocket

5
推荐指数
0
解决办法
401
查看次数

GridLayout没有填充JPanel

我遇到了GridLayout的问题,并且整个JPanel没有被填充.我有一个N*M网格,我用N*M Tiles填充它(它们扩展了JPanel).添加所有这些图块后,JPanel的底部和右侧仍有空间.我认为GridLayout应该填满整个JPanel,并使其中的所有内容均匀分布?

编辑:我不想发布所有代码,因为有多个类.想到也许有一个简单的解决方案.

public class MainFrame extends JFrame {

    private static final long serialVersionUID = 3985493842977428355L;
    private final int FRAME_HEIGHT = 800;
    private final int FRAME_WIDTH = 700;

    private MainPanel mainPanel;

    public MainFrame() {
        super("Test");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(FRAME_HEIGHT, FRAME_WIDTH);
        setLocationRelativeTo(null);    
        mainPanel = new MainPanel();
        getContentPane().add(mainPanel);
        setVisible(true);
    }
}

public class MainPanel extends JPanel {
    /**
     * 
     */
    private static final long serialVersionUID = 3421071253693531472L;

    private RoutePanel routePanel;
    private ControlPanel controlPanel;
    private GridBagConstraints gridBagConstraints;
    private GridBagLayout gridBagLayout;

    public MainPanel() {
        routePanel = …
Run Code Online (Sandbox Code Playgroud)

java swing

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

Ember Computed Property与Ember Observer

我在这里看到的所有先前的问题似乎都没有涵盖何时使用Ember Computed Property和Ember Observer的主题.我知道Computed Property使用以前的属性来帮助生成新属性,并在运行循环中更新.

Person = Ember.Object.extend({
  // these will be supplied by `create`
  firstName: null,
  lastName: null,

  fullName: Ember.computed('firstName', 'lastName', function() {
    return `${this.get('firstName')} ${this.get('lastName')}`;
  })
});
Run Code Online (Sandbox Code Playgroud)

另一方面,观察者在运行循环之外更新,甚至可以观察任何计算属性.它会对任何类型的变化做出反应.

Person = Ember.Object.extend({
  // these will be supplied by `create`
  firstName: null,
  lastName: null,

  fullName: Ember.computed('firstName', 'lastName', function() {
    return `${this.get('firstName')} ${this.get('lastName')}`;
  }),

  fullNameChanged: Ember.observer('fullName', function() {
    // deal with the change
    console.log(`fullName changed to: ${this.get('fullName')}`);
  })
});
Run Code Online (Sandbox Code Playgroud)

然后,Ember文档指出观察者通常过度使用.有人能给出正确使用观察者的更好例子吗?他们还能看到什么,以及错误使用与正确使用的影响是什么?

源代码可以在ember文档中找到:https://guides.emberjs.com/v2.3.0/object-model/observers/

ember.js

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

这是对unique_ptr的误用吗?

我正在转向智能指针,我正在努力确保我正确使用它们.有很多问题涉及何时使用每个问题,但我无法找到关于吸气剂的具体问题.

我有一个拥有指针的类,我希望其他类能够访问该指针(在步骤中重构遗留代码).我想给类一个unique_ptr,因为它只拥有该对象,但是它们无法复制.我应该返回对unique_ptr的引用,还是只使用shared_ptr?

class B
{
 public:
    doAction() {};
};

class A
{
 private:
    std::unqiue_ptr<B> pointer;

 public:
    std::unique_ptr<B>& GetPointer()
    {
        return pointer;
    }

};

a.GetPointer()->doAction();
Run Code Online (Sandbox Code Playgroud)

c++ c++11 c++14

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