小编nm1*_*m17的帖子

在崇高的"ctrl + tab"中切换选项卡

有人注意到默认的ctrl +选项卡不能像大多数其他应用程序切换选项卡一样工作吗?我正在尝试切换到下一个相邻的标签,但它似乎跳了起来(我认为是字母顺序).

如何更改sublime切换选项卡的顺序?

sublimetext2

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

每个参数值都有单独的 lru 吗?

我需要编写一个 sql 数据库列 getter,它接受列名和时间,并返回与输入时间相对应的该列的整列值。这可能是具有相同参数的频繁函数调用,因此我想使用 lru 缓存。但是,我不确定列名的频率是否均匀分布,因此理想情况下,我将为每个列名都有一个单独的 lru 缓存。

I previously had it like below, but I would like to separate the lru for each col_name.

@lru_cache(...)
def get_col(self, col_name, time)
  # do stuff to get the column and return it
Run Code Online (Sandbox Code Playgroud)

How can I achieve this? Also, unfortunately, I have to support py2.

python python-2.x lru

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

将向量移动到 unordered_set

我有一个vector<T>我想用它来初始化unordered_set<T>vector<T>以后再也不会使用了。

我的做法如下

std::vector<T> v{ /* some large amount of data, typically strings */ };
std::unordered_set<T> ht;
std::move(v.begin(), v.end(), std::inserter(ht, ht.end()));
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更直接的方法可以用unordered_set构造函数来做到这一点?它的移动构造函数不接受向量。

c++ move vector unordered-set

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

函数后面的 const &amp;、const &amp;&amp;、&amp;、&amp;&amp; ?

我目前正在查看一些内部基础设施代码,我看到了一些这样定义的函数:

// func_name is a class member function

some_return_type func_name() & {
  // definition
}

some_return_type func_name() && {
  // definition
}

some_return_type func_name() const& {
  // definition
}

some_return_type func_name() const&& {
  // definition
}
Run Code Online (Sandbox Code Playgroud)

我知道const在类成员函数名称之后意味着它不会修改类中定义的不可变成员变量。但这里的&&&const &const &&变体是什么意思呢?

c++ class

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

这个退货声明有什么意义吗?

我想知道在我看到的代码的一部分中是否有任何重要性

return (num!=0);
Run Code Online (Sandbox Code Playgroud)

其中num是一个int.这是一个布尔函数的return语句,如果是num != 0,则返回TRUE,如果是,则返回false num = 0.

我不确定这是否有隐藏的意义,但我不明白为什么他们不能简单地写:

return num;
Run Code Online (Sandbox Code Playgroud)

这是我看到的代码:

bool SemClass::cut(int &a, int &b, int &c) 
{
  int num = 0;    
  check(a, num);
  check(b, num );
  check(c, num);
  return (num != 0);
}
Run Code Online (Sandbox Code Playgroud)

c++ boolean return implicit-conversion

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

矢量声明"预期参数声明器"

我在类的私有成员变量中有一行代码:

vector<double> dQdt(3)
Run Code Online (Sandbox Code Playgroud)

在xcode中编译时,会出现"预期参数声明符"错误.我想我提供了足够的信息.我没有看到这个声明有什么问题.

c++ vector

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

有没有办法仅当 python 中的运行时标志为 true 时才继承类?

我希望仅当运行时标志打开时才A继承现有的类。B这可能吗?

通常对于这些情况,我要么

  1. 默认情况下继承,如果该标志为 FalseA则不B使用B

  2. 创建另一个A_mod继承自A和的类B,并在该标志为 true 时使用该类。

python

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

指向派生对象的基类型指针的 make_unique 的语法是什么?

考虑以下基类和派生类。

class base
{
public:
    int i{9};
    virtual void func()
    {
        cout << "base" << endl;
    }
    virtual ~base()
    {

    }
};

class derived : public base
{
public:
    int i{4};
    void func()
    {
        cout << "derived" << endl;
    }

};
Run Code Online (Sandbox Code Playgroud)

我想创建unique_ptrbase类型derived对象。我知道我能做到

std::unique_ptr<base> ptr{new derived};

但是当我这样做的时候

auto ptr = std::make_unique<base>(derived{});
ptr->func();
Run Code Online (Sandbox Code Playgroud)

这会打印base,这不是我的预期行为。std::make_unique在这种情况下使用的正确方法是什么?另外,为什么auto ptr = std::make_unique<base>(derived{})呢?

c++ smart-pointers

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

将 2 个预先声明的变量分配给函数返回

我有一个返回的函数std::pair<int, int>。我还有 2 个预先声明的变量xy. 我想做这样的事情:

int x;
int y;

if (flag) {
  x, y = func_that_returns_pair(some args);
} else {
  x, y = func_that_returns_pair(some different args);
}
Run Code Online (Sandbox Code Playgroud)

我查看了可以在 C++ 中同时分配 2 个变量吗?,而在 C++11 中,您可以使用std::tie. 我认为该auto [x, y]方法在这里不起作用,因为x, y已经声明了并且这里有 if/else 条件。除了使用之外还有其他方法可以做到这一点吗std::tie

c++

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

成员函数参数类型是嵌套类

class Solution {
public:
    void func(test t)
    {

    }
    class test
    {

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

编译这给出了错误

error: unknown type name 'test'
    void func(test t)
Run Code Online (Sandbox Code Playgroud)

我在类型测试中添加了一个范围

class Solution {
public:
    void func(Solution::test t)
    {

    }
    class test
    {

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

但这给

test.cpp:47:25: error: no type named 'test' in 'Solution'
    void func(Solution::test t)
Run Code Online (Sandbox Code Playgroud)

我认为这是因为该函数test不知道,class test因为它是在它下面声明的。所以我在上面添加了一个声明test

class Solution {
public:
    class test;
    void func(Solution::test t)
    {

    }
    class test
    {

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

现在这段代码可以编译(如果我删除了Solution::作用域,它也会编译),但是我有两个问题。

(1) 如果func调用在它下面定义的某个其他成员函数,它可以工作,但是为什么 …

c++ class

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

附加 1 向量的最佳方法是什么?

int n = get_n(); 
std::vector<int64_t> v{4};
// append n 1s to v here?
Run Code Online (Sandbox Code Playgroud)

我通常只是创建一个向量并移动:

std::vector<int64_t> ones(n, 1);
std::move(ones.begin(), ones.end(), std::back_inserter(v));
Run Code Online (Sandbox Code Playgroud)

有比我在这里所做的更好的方法吗?

c++ vector

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

如何在向量中存储整数和字符串?

我需要将元素存储在连续的容器中,例如std::vector. 问题是容器需要支持插入或两者都支持intstd::string

这在 C++ 中似乎很难做到,因为它是一种强类型语言。我想做一些类似的事情

std::vector<std::pair<int, std::string>> container;
Run Code Online (Sandbox Code Playgroud)

或者

struct custom_struct {
  int val;
  std::string;
  bool is_val;    // true if integer and false if string
};
std::vector<custom_struct> container;
Run Code Online (Sandbox Code Playgroud)

但这似乎都不是一个很好的选择。第一个的问题是,我不知道如何在该对表示整数还是字符串之间切换,因此为什么我想出了第二种方法,尽管第二种方法不是很优雅,因为我必须重复键入检查使用is_val

我可以在 C++ 中考虑其他方法吗?

c++ types vector

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

无法使用继承,纯虚方法分配抽象类型的对象

我收到此编译错误:

main.cpp:34:74: error: cannot allocate an object of abstract type ‘HouseClass’
   mapEntVec.push_back(new HouseClass(PixelLocationClass(120, 220), 100000));
                                                                          ^
In file included from main.cpp:2:0:
HouseClass.h:17:7: note:   because the following virtual functions are pure within ‘HouseClass’:
 class HouseClass:public RectangularEntityClass
       ^
In file included from HouseClass.h:8:0,
                 from main.cpp:2:
RectangularEntityClass.h:18:20: note:   virtual std::string RectangularEntityClass::getType() const
     virtual string getType() const = 0;
                    ^
RectangularEntityClass.h:19:17: note:   virtual int RectangularEntityClass::getNumRows() const
     virtual int getNumRows() const = 0;
                 ^
RectangularEntityClass.h:20:17: note:   virtual int RectangularEntityClass::getNumCols() const
     virtual int getNumCols() const = …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance

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