小编Inv*_*tus的帖子

第一次操作应该更快,如果是,那么为什么?

第一个比第二个更快吗?

  u+= (u << 3) + (u << 1) //first operation
  u+= u*10  //second operation 
Run Code Online (Sandbox Code Playgroud)

基本上他们两个都做同样的事情u= u+(10*u) 但是我开始知道第一次操作比第二次更快.操作时的cpu时间是否与*不同.Is multiplication by 10 actually equivalent to 10 addition operations being performed ?

c++

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

在为线程设置新优先级时不允许操作

我创建了两个线程.默认情况下,他们有优先权的0,我可以看到使用pthread_getschedparam,然后我试图增加他们的优先说23分别.但是,当我尝试这样做时,我得到一个错误

     error setting priority for T1: (1), Operation not permitted
     error setting priority for T2: (1), Operation not permitted 
Run Code Online (Sandbox Code Playgroud)

我已经使用了SCHED_RR他们的调度策略

       int sched = SCHED_RR;
Run Code Online (Sandbox Code Playgroud)

然后执行了这个: -

   if (pthread_setschedparam(t1, sched, &t1_param) != 0) 
  {
     std::cout << "error setting priority for T1: (" << errno << "), " << 
     strerror(errno) << std::endl;
  }
Run Code Online (Sandbox Code Playgroud)

什么是为什么我不能修改我的线程优先级,因为优先权是限制范围内的理由199为SCHED_RR.

c++ pthreads

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

重载函数,没有上下文类型信息

#include<iostream>
#include<stdio.h>
#include<string.h>

using namespace std; 

void cb(int x)
{
    std::cout <<"print inside integer callback : " << x << "\n" ;    
}

void cb(float x)
{
    std::cout <<"print inside float callback :" << x <<  "\n" ;
}

void cb(std::string& x)
{
    std::cout <<"print inside string callback : " << x << "\n" ;
}

int main()
{

void(*CallbackInt)(void*);
void(*CallbackFloat)(void*);
void(*CallbackString)(void*);

CallbackInt=(void *)cb;
CallbackInt(5);

CallbackFloat=(void *)cb;
CallbackFloat(6.3);

CallbackString=(void *)cb;
CallbackString("John");

return 0;

}
Run Code Online (Sandbox Code Playgroud)

上面是我的代码,它有三个函数,我想创建三个回调,它们将根据参数调用重载函数.CallbackInt用于调用cb函数,int作为参数,同样休息两个.

但是当用它编译时给出了如下错误.

 function_ptr.cpp: In function ‘int …
Run Code Online (Sandbox Code Playgroud)

c++ function-pointers c++11

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

分配值时是否为char*终止字符串为空?

假设我的代码中有以下内容: -

char *abc = " Who cares";
int len= strlen(abc);
Run Code Online (Sandbox Code Playgroud)

这为我提供了abc的长度.我的疑问是Strlen如何确定abc的长度.当然它会查找null终止并返回值.但这是否意味着abc在我正在初始化它的值"Who cares"的地方被赋予Null?

c++

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

什么是"operator int&(){return i;}"在代码中执行

我在Stack Overflow中发现这段代码只需几分钟.我operator int&() { return i; }对代码中的实际操作感到困惑 .

#include <iostream>
#include <conio.h>

using namespace std;

class INT {
public:
            INT(int ii = 0) : i(ii) {}
            operator int&() { return i; }
            void display()
            {
              cout << "value of i is : " << i;       
            }
private:
  int i;
};

int main()
{
  INT l;
  cin >> l;
  l.display();
  getch();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我添加了显示功能只是为了获得一些见解.我看到我得到的值cin >> l;被分配给i对象的私有成员l.所以我猜这肯定是某种超载.

你能让我知道我们可以直接通过课堂对象的价值cin吗?它运作正常吗?

如果我int在私有部分有两个变量 …

c++

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

STL设置了什么样的树实现?

我知道在STL中vector表示动态数组的实现.那么它list代表链表的实现(双链表).我知道它set有一个类似于树的实现.查看算法复杂性,如上所述,集合中的大多数内置函数具有复杂度o(1)o(log n).因此,这棵树实现为平衡树或任何其他类型的树,例如红黑树,如果是,为什么选择这样的树结构?

c++ tree data-structures

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

为什么在使用内置qsort时会出错

我写了一些代码,它给了我错误.代码如下: -

  long long int compare (const void * a, const void * b)
   {
     return ( *(long long int*)a - *(long long int*)b );
   }

 long long int number; 
 long long int *ar =(long long int *)(malloc(sizeof(long long int)*number));
 //Took the values of number and  ar from and then performed the following
 qsort(ar,number,sizeof(long long int),compare);
Run Code Online (Sandbox Code Playgroud)

此代码导致以下错误: -

invalid conversion from long long int (*)(const void*, const void*)' to int (*)(const void*, const void*) initializing argument 4 of void qsort(void*, …

c++

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

python并行读取csv文件并连接数据帧

我有一个应用程序可以读取 50 个大尺寸 csv 文件,每个文件大约 400MB。现在我正在阅读这些内容来创建一个数据帧,并最终将所有这些连接到一个数据帧中。我想同时这样做以加快整个过程。所以我下面的代码看起来像这样:

import numpy as np
import pandas as pd
from multiprocessing.pool import ThreadPool
from time import time 

Class dataProvider:
    def __init__(self):
        self.df=pd.DataFrame()
        self.pool = ThreadPool(processes=40)
        self.df_abc=pd.DataFrame()
        self.df_xyz=pd.DataFrame()
        self.start=time()

     def get_csv_data(self,filename):
        return pd.read_csv(filename)

     def get_all_csv_data(self,filename):
         self.start=time()
         df_1 = self.pool.apply_sync(self.get_csv_data,('1.csv',), callback=concatDf)
         df_2 = self.pool.apply_sync(self.get_csv_data,('2.csv',), callback=concatDf)
         total_time=time()-self.start

     def concatDf(self):
         self.df_abc=pd.concat([df_1,df_2])
         self.df_xyz=self.df_abc.iloc[:,1:]
         return self.df_xyz
Run Code Online (Sandbox Code Playgroud)

我看到代码有以下问题:

  1. 如果我的 apply_sync 调用调用了相同的回调,那么我如何知道当前回调已被上面 df_1 行或 df_2 中的哪个调用调用?2)我想连接不同apply_sync的输出,我该如何在concatDf回调函数中做到这一点?
  2. 我如何知道所有 apply_sync 调用的回调已完成,以便我可以返回所有 50 个 csv 的串联数据帧?
  3. 有没有更好、更有效的方法来做到这一点?

谢谢

multithreading threadpool python-3.x pandas

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

nbconvert 使用'--allow-chromium-download'

我尝试通过单击File-> Download as->Pdf通过 pyppeteer将 Jupyter Notebook 下载为 pdf 。这样做时我收到以下错误:

nbconvert failed: No suitable chromium executable found on the system. Please use '--allow-chromium-download' to allow downloading one.
Run Code Online (Sandbox Code Playgroud)

我已经使用 command 安装了 pyppeteer conda install -c conda-forge pyppeteer。现在我试图通过 Jupyter GUI 下载 pdf,但它失败了。

我怎样才能做到这一点 ?我是否需要在 anaconda 终端上运行一些命令才能做到这一点?

python pdf anaconda nbconvert

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

为什么需要硬链接和软链接?

创建硬链接和软链接有什么用?我们在什么样的场景下创建它们?

unix linux

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