小编mmn*_*yle的帖子

在c ++ 11中,是否在函数中返回std :: string移动或复制它?

假设我有以下代码.

std::string foo() {
    std::string mystr("SOMELONGVALUE");
    return mystr;
}

int main() {
    std::string result = foo();
}
Run Code Online (Sandbox Code Playgroud)

当我调用'foo'时,数据是mystr复制还是移入result?我相信它是移动C++ 11风格,但我希望澄清和/或链接来显示.

谢谢!

编辑:我想在使用g ++编译c ++ 11或更高版本时,我想知道这个问题的答案.

c++ c++11

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

如何在服务器上运行 Electron 应用程序,并从客户端通过 Web 浏览器连接到它?

我有兴趣采用 Electron 项目,在服务器上运行它,并通过客户端上的浏览器连接到 UI。

是否有任何现有项目可以帮助构建这样的东西?或者这个功能是否以某种方式内置于 Electron 框架中?

remote-server electron

7
推荐指数
0
解决办法
1510
查看次数

Spark读取多个CSV文件,每个文件一个分区

假设我在同一目录中有多个 CSV 文件,这些文件都共享相同的架构。

/tmp/data/myfile1.csv、/tmp/data/myfile2.csv、/tmp/data.myfile3.csv、/tmp/datamyfile4.csv

我想将这些文件读入 Spark DataFrame 或 RDD,并且我希望每个文件都是 DataFrame 的一个分区。我怎样才能做到这一点?

csv apache-spark apache-spark-sql

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

在 PyPI 中获取包的要求而不安装它?

我需要类似以下内容:

pip showrequirements tensorflow
Run Code Online (Sandbox Code Playgroud)

这将返回一些允许我解析所需软件包名称和所需版本的内容:

astor>0.6, tensorboard>1.0.11, etc.
Run Code Online (Sandbox Code Playgroud)

pip 在安装和下载命令期间以某种形式获取此信息。我可以在代码中看到它发生的地方……但是在我破解使用 pip 内部代码的方法之前,是否有任何简单的 API 或现有库可以做到这一点?

编辑:我无法安装软件包来查看此内容,因此 pip show 将不起作用。一种(hacky)解决方案是解析 pip 下载的输出。

谢谢!

python packages pip package-management pypi

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

有没有办法让python启动时始终执行脚本?(类似 R 中的 site.profile)

在 R 编程语言中,有一个 site.profile 文件,它定义了 R 进程在启动时执行的一些代码。Python中有类似的功能吗?

编辑:澄清一下,如果用户从命令行调用 python,而且 python 是从另一个进程生成的(例如,如果用户的脚本使用子进程生成另一个 python),则应该执行此脚本。

python startup

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

ASP.NET Core 中的持久内存并发字典

在 ASP.NET Core 应用程序中,我希望具有类似于以下内容的持久共享状态:

ConcurrentDictionary<string, Job> Jobs;
Run Code Online (Sandbox Code Playgroud)

应用程序的各种组件将访问此共享状态(请求处理控制器、后台任务),但我主要关注的不是并发访问。我很好奇的是是否有办法在我的 ASP.NET Core 应用程序的整个生命周期中保留这样的全局变量。

有没有可以定义这个全局Jobs变量的地方,它不会被 ASP.NET Core 运行时破坏?也许MemoryCache以某种方式利用?

使用 Redis 之类的东西肯定会起作用,但我很好奇是否有针对 ASP.NET Core 中全局共享状态的强大的内存/进程内解决方案。

c# .net-core asp.net-core

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

通知线程是否始终需要在修改期间锁定共享数据?

使用条件变量时,http://en.cppreference.com/w/cpp/thread/condition_variable描述了通知的线程的典型步骤:

  1. 获取std :: mutex(通常通过std :: lock_guard)
  2. 在锁定时执行修改
  3. 在std :: condition_variable上执行notify_one或notify_all(不需要保持锁定以进行通知)

对于下面显示的简单情况,主线程在修改它时是否需要锁定"停止"?虽然我理解在修改共享数据时锁定几乎总是一个好主意,但我不确定为什么在这种情况下它是必要的.

std::condition_variable cv;
std::mutex mutex;
bool stop = false;

void worker() {
    std::unique_lock<std::mutex> lock(mutex);
    cv.wait(lock, [] { return stop; })
}

// No lock (Why would this not work?)
void main() {
     std::thread(worker);
     std::this_thread::sleep_for(1s);
     stop = true;
     cv.notify_one();
}

// With lock: why is this neccesary?
void main() {
     std::thread mythread(worker);
     std::this_thread::sleep_for(1s);
     {
         std::unique_lock<std::mutex>(mutex);
         stop = true;
     }
     cv.notify_one();
     mythread.join();
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading mutex condition-variable c++11

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

如何有效地将基础数据从std :: string移动到另一种类型的变量?

编辑:对不起大家,我不认为这个玩具示例真的反映了我的问题.我应该问的是,是否有办法释放std :: string对象的缓冲区.没有,这是有道理的.谢谢!

假设我有以下(破损)代码:

void get_some_data(MyCustomContainer& val)
{
    std::string mystr = some_function();
    val.m_data = &mystr[0];
}
Run Code Online (Sandbox Code Playgroud)

这将不起作用,因为指向的内存mystr在结尾处被释放get_some_data,并且val.m_data引用的内存将无效.

如何判断std :: string"不要在析构函数中释放内存缓冲区!" ?我不想复制数据.MyCustomerContainer对象将在其析构函数中处理内存释放.

c++ c++11 c++14 c++17

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

Pythonic方法执行<,>,==,<=或> =基于字符串值的操作?

假设我有一个字符串op,可以等于<,>,==,<=或> =.

我想对两个值执行相关的操作.除了下面显示的简单if/else方法之外,还有更多的pythonic方法吗?

def doit(op, val1, val2):
     if op == ">":
         return val1 > val2
     elif op == "<":
         return val1 < val2
     etc....
Run Code Online (Sandbox Code Playgroud)

python

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