小编Ere*_*ren的帖子

C ++ 17部分推导指南

我正在尝试编写一个推导指南,该指南仅从给定的构造函数参数中检测许多类型名之一,并且要求用户int size手动输入

template <int size, typename T>
struct Board
{
            array<array<T, size>, size> values;

            explicit Board(const vector<T>& raw_values){

            }
};
template <int size, typename T> Board(const vector<T>&) -> Board<int size, T>;
Run Code Online (Sandbox Code Playgroud)

上面的想法是仍然应该强迫用户输入“ int size”模板的参数,但是“ typename T”应该从构造函数的参数推导出来,这可能吗?

正确规范后,这就是应该如何调用方法

auto b = Board<3>(initialStateVector);
Run Code Online (Sandbox Code Playgroud)

目前,要求我这样输入;

auto b = Board<3, int>(initialStateVector);
Run Code Online (Sandbox Code Playgroud)

所以基本上,我想int从给定推导上面的“ ” initialStateVector,它具有类型

const vector<int>& raw_values
Run Code Online (Sandbox Code Playgroud)

c++ template-argument-deduction c++17

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

聚合初始化具有不同的参数顺序

有什么方法可以指定与声明顺序不同的参数?

例如,假设我具有以下结构:

struct Coord
    {
        int x, y;
    };
Run Code Online (Sandbox Code Playgroud)

我可以初始化为

auto a = Coord{ y(5),x(4) };
Run Code Online (Sandbox Code Playgroud)

请注意,出于好奇我是在问这个,我真的不需要做这样的事情。但是我想知道是否可以在不声明构造函数但指定参数的情况下初始化结构。

c++ c++17

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

ArrayList删除不起作用

我试图walls ArrayList用for循环删除里面的所有对象,但我不能让它工作

public void initializeButtons(){
    JButton save_button = new JButton("Save");
    save_button.addMouseListener(new Button_MouseListener(save_button));
    save_button.setBounds(1300, 50, 75, 50);
    add(save_button);

    JButton load_button = new JButton("Load");
    save_button.addMouseListener(new Button_MouseListener(load_button));
    load_button.setBounds(1300, 125, 75, 50);
    add(load_button);

    JButton reset_button = new JButton("Reset");
    save_button.addMouseListener(new Button_MouseListener(reset_button));
    reset_button.setBounds(1300, 200, 75, 50);
    add(reset_button);
}
Run Code Online (Sandbox Code Playgroud)

这是Button_MouseListener负责处理"Reset"按钮的一部分

if (button.getText().equals("Reset")) {
    for (int i = 0; i < walls.size(); i++) {
        walls.remove(((int)i));
    }
    repaint();
}
Run Code Online (Sandbox Code Playgroud)

注意: walls.clear();也不起作用,我没有收到任何错误.它什么都不做.

java arraylist

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