小编Kan*_*bot的帖子

仅当使用 unordered_map 而不是向量时,将 const 作为此参数传递才会丢弃限定符

据我所知,调用非const方法恒定的对象作为解释给出了一个错误这里。这个问题虽然涉及相同的错误,但不是重复的,因为它不是关于非常量方法。

这次我有一个最小的可重现示例:

// Example program
#include <iostream>
#include <string>
#include <vector>
#include <unordered_map>

class Something
{
public:
    int m_value;
    Something(): m_value{0} { myVector.push_back(1); myMap["hello"]=3; }
    void setValue(int value) { m_value = value; }
    int getValue() { return m_value ; }
    //int getValue(const int value){ return myVector[value]  ;  }  //<-- this gives an error (just reference)
    int getValue(const int value)const { return myVector[value];    }
    //int getValue2(const std::string &name) {return myMap[name];   }  //<--- this gives an …
Run Code Online (Sandbox Code Playgroud)

c++ constants

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

用较小的时间尝试 Task.Delay。试图找出为什么会发生这种情况

试图了解如何使用 Task.Delay 我一直在做一系列简单的实验,我发现了以下内容。

首先我这样做了

static void Main(string[] args)
  {
     Console.WriteLine("Start");
     Task.Run(async () => {
                    Stopwatch sw = Stopwatch.StartNew();
                    await Task.Delay(2000);
                 //    for(int i=0;i<1000;i++)
                  //         await Task.Delay(2);
                     sw.Stop();
                    Console.WriteLine("Delay of {0}", sw.ElapsedMilliseconds);
                   //return sw.ElapsedMilliseconds;
                });

    Console.WriteLine("End of everything:");
    Console.ReadKey();

    }
Run Code Online (Sandbox Code Playgroud)

结果正如预期的那样延迟了 2 秒多一点。到目前为止,一切都很好!然后我注释了延迟线并取消注释了 for 循环。1000 次 2 毫秒必须给出 2 秒,对吗?错误的!这次用了15秒。

我稍后会对此发表评论,但只是为了进行比较,我这样做了。

    static void Main(string[] args)
    {
     Console.WriteLine("Start");
     Stopwatch sw = Stopwatch.StartNew();
     for (int i = 0; i < 1000; i++)
          Thread.Sleep(2);

//         Thread.Sleep(2000);
      sw.Stop();
      Console.WriteLine("Delay of {0}", sw.ElapsedMilliseconds);
      Console.WriteLine("End");

    }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到了更精确的 …

c# timedelay

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

克隆后,我只有一个分支吗?

我想了解以下情况:

我和其他人正在使用Github的一个项目.我相信它除了主人之外还有几个分支(特别是"开发")

所以我将项目克隆到我的计算机上,git clone <url> 然后我得到了这个项目.我被告知我应该使用开发分支而不是主分支

所以我打字git branch看看那里有什么分支我得到了

$ git branch
* master
Run Code Online (Sandbox Code Playgroud)

什么?开发分支在哪里?

不过我确实git checkout develop看到了!我现在在开发分支!我再做git branch一次,我可以看到

$ git checkout develop
Branch develop set up to track remote branch develop from origin.
Switched to a new branch 'develop'
$ git branch
* develop
  master
Run Code Online (Sandbox Code Playgroud)

这里发生了什么黑魔法?它说开发是为了跟踪原产地的发展!那之前发展是隐藏的吗?无法访问?

在做完之后,git log --oneline --decorate我可以看到原点/开发分支,但刚刚发生了什么?

git github git-clone git-branch

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

数组列表所需的属性 getter 或 setter

我正在通过视频课程学习 Kotlin 中的 Android 编程,但我遇到了以下问题。这个问题在教练机上不会出现;在那里它可以正常工作

编码

    class MainActivity : AppCompatActivity() {
    
    
    //    lateinit var listNotes: ArrayList<Notes>
        var listNotes: ArrayList<Notes>()  //<=====HERE!!!
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            //Add dummy data
            listNotes.add(Notes(1,"meet Profesor","asdasdasd asdads asdad asdasd asdasd asdasd"))
            
            listNotes.add(Notes(2,"eat something","asdasddfdfdf;l;l;l;l;l;laspopopopo popo popo d asdasd"))
            
            listNotes.add(Notes(3,"go to the movies","ann nunun nun nun ijijok koko kok okok ok nununun"))
    
            var myNotesAdapter= myNotesAdapter(listNotes)
    
            lvNotes.adapter= myNotesAdapter
    
        }
//....more code
}
Run Code Online (Sandbox Code Playgroud)

问题与 ArrayList 声明一致。它说“预期的 getter 或 setter”

我已经阅读了一些关于这个问题的简单变量的答案(比如将它放在构造函数中等)但是在这个上下文中使用 ArrayList 意味着什么?

不幸的是,讲师不回答问题,所以我无法理解这里的交易是什么?更奇怪的是我可以在视频中看到这段代码在他的机器上没有任何问题。

android kotlin

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

结构和类,关于速度、内存或效率的使用

已经有几个问题让人们询问 C++ 中类和结构之间的区别。引用最多的差异是默认可见性不同。甚至 Stroustrup 似乎也暗示基本没有区别。

我认为我的问题不是重复的,因为我想问一些具体和准时的问题:针对类使用结构体在速度、内存使用或效率方面有任何影响吗?可以基于其中的任何优势来选择一个吗?

作为参考,我正在评估一个人的 C++ 代码,该代码仅使用结构体,我将把它移植到资源有限的 ARM 架构中。

c++ performance struct class memory-efficient

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

在 numpy 中,pythonic 改变一个通道的值的方法

假设我有一个形状为

(960,1920,4)
Run Code Online (Sandbox Code Playgroud)

像这样的价值观

[[[  0  60   0   0]
  [  0 100   0   1]]

 [[  0 100   0   1]
  [  0  40   0   0]]]
Run Code Online (Sandbox Code Playgroud)

将第四个通道中的 1 更改为 255 的 Pythonic 方法是什么?(我可以用一些循环来做,但我怀疑这需要时间,而不是最好的方法)

我希望获得的结果是

[[[  0  60   0   0]
  [  0 100   0   255]]

 [[  0 100   0   255]
  [  0  40   0   0]]]
Run Code Online (Sandbox Code Playgroud)

注意:我想在这种情况下可以进行一些乘法运算,那没问题,但是如果我有多个非零值而不是全 1 并且想将它们转换为 255 呢?

python numpy

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

从另一个文件夹导入函数的简单方法,但要使用 pytest

我正在寻找一种从另一个文件夹导入函数的简单方法:

|--mylib
|   |--__init__.py
|   |--mylib2.py
|
|--mytest
|   |--other.py
|   |--test_one.py
|
|--mymain.py
Run Code Online (Sandbox Code Playgroud)

mylib2.py

def suma(a,b):
    return a+b
Run Code Online (Sandbox Code Playgroud)

mymain.py

from mylib.mylib2 import suma
def main():
    a=3
    b=4
    c=suma(a,b)
    print(c)


if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

其他.py

from mylib.mylib2 import suma

c=suma(1,2)
print(c)
Run Code Online (Sandbox Code Playgroud)

测试一.py

from mylib.mylib2 import suma

def test_nothing():
    assert True

def test_crash():
    e=0
    #d=30/e
    assert True
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我无法正常从 other.py 调用 suma (因为我不知道如何正确地将 mylib2.py 包含在 mytest 文件夹中的文件中,但按照这个答案我可以这样做

python3 -m mytest.other
3
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何运行 pytest(包括库)

如果我进行 pytest 我会收到一条消息

    from mylib.mylib2 import …
Run Code Online (Sandbox Code Playgroud)

python pytest

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