小编Sho*_*hoe的帖子

伪造插入器是一种好习惯吗?

我们被教导创建函数对象以使用算法.

有算法可以调用operator(),如:

  • 的for_each
  • find_if
  • 的remove_if
  • max_element
  • count_if

这些函数对象通常应该从函数,谓词等继承unary_functionbinary_function表现.

但书籍通常不会展示创建的示例OutputIterators:

例如,要遍历函数的输出 std::set_intersection(),我必须提供目标容器,然后遍历结果:

std::vector<int> tmp_dest;

std::set_difference (
        src1.begin(), src1.end(), 
        src2.begin(), src2.end(), 
        std::back_inserter(tmp_dest));

std::for_each( tmp_dest.begin(), tmp_dest.end(), do_something );
int res = std::accumulate( tmp_dest.begin(), tmp_dest.end(), 0 );
Run Code Online (Sandbox Code Playgroud)

但是认为有时使用每个算法的值而不先存储它们会更有效,例如:

std::set_difference (
        src1.begin(), src1.end(), 
        src2.begin(), src2.end(), 
        do_something );

Accumulator accumulate(0);  // inherits from std::insert_iterator ?
std::set_difference (
        src1.begin(), src1.end(), 
        src2.begin(), src2.end(), 
        accumulate );
Run Code Online (Sandbox Code Playgroud)
  • 我们通常应该创建像这个累积器的类吗?
  • 它的设计应该是什么样的?
  • 它应该继承什么? 累加器可以继承insert_iterator …

c++ algorithm stl

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

C++中的彩色输出

有没有办法使用iostream和Xcode 打印彩色输出?我想是可以的,例如,印Hello World!Hello红色,World蓝色和!黄色.我怎样才能做到这一点?

c++ macos xcode iostream

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

std :: multiplies和std :: divides是否有任何理由成为第三人称?

今天,我们发现,对于乘除,仿函数被称为std::multipliesstd::divides,而不是,例如, std::multiplystd::divide分别.

至少可以说这是令人惊讶的,考虑到std::plus并且std::minus没有以相同的方式制定.

差异有特殊原因吗?

c++ library-design

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

为什么不是abs constexpr?

<cinttypes>,从C++ 11开始,有以下两个重载:

std::intmax_t abs( std::intmax_t n );
std::intmax_t imaxabs( std::intmax_t n );
Run Code Online (Sandbox Code Playgroud)

为什么不是这两个功能constexpr

c++ constexpr c++11

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

PHP将所有$ _POST []变量访问到一个数组中?

如何捕获$_POSTVARIABLE中的所有字段?成阵列?

$email = $_POST;
$emails = array_keys($email);
foreach($emails as $email) {
        echo '$' . nl2br($email);
}
$emailadd = new email_save;
$emailadd->insert_email_into_database("POST VARIABLES GO HERE)
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个电子邮件列表,名称和电子邮件地址,如何捕获所有可以正常访问的变量,如 $_POST['email']数组,以便我可以将它们添加到我的函数中的参数?

我的表单字段有5个字段.方法是POST.

而不是写作,

$email = mysql_real_escape_string($_POST['email']);
$firstname = mysql_real_escape_string($_POST['firstname']);
Run Code Online (Sandbox Code Playgroud)

我正在尝试访问$ _POST []数组中的所有值; 因此,我可以节省获取已发布变量的时间,并为这些变量添加函数mysql_real_escape_string();

其他安全措施将被计算出来.

我希望能够将一个数组的reffrence添加到一个函数,以便我可以将它们添加到数据库中.

php arrays oop post

14
推荐指数
2
解决办法
7万
查看次数

在没有通用参考的情况下获得通用参考的优势

问题

让我们假设一个函数func接受表单中的任何容器Container<Type, N, Args...>(这是一个容器,它将第一个模板参数作为一个类型,第二个std::size_t函数定义容器中有多少个参数)并返回其i第th个元素,当且仅当N它在40和之间时42.

这种容器的一个例子是std::array.

我的第一个版本的功能将是:

template
    < template<class, std::size_t, class...> class Container
    , class Type
    , std::size_t N
    , class... Args >
auto func(std::size_t i, Container<Type, N, Args...>& container) -> decltype(container[0]) { 
    static_assert(N >= 40 && N <= 42, "bla bla bla");
    return container[i];
}
Run Code Online (Sandbox Code Playgroud)

然后我需要一个const重载:

template
    < template<class, std::size_t, class...> class Container
    , class Type
    , std::size_t N
    , class... …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++11 universal-reference

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

"中缀"如何运作?

我在玩同infixr,infixlinfix声明.我知道如何infixrinfixl工作原理:

-- Test expression: 40 +++ 20 +++ 50 +++ 10 * 10

-- infixr 8 +++ -- Calculated as: (40 +++ (20 +++ (50 +++ 10))) * 10. Result: 630.
-- infixl 8 +++ -- Calculated as: (((40 +++ 20) +++ 50) +++ 10) * 10. Result: 800.

-- infixr 6 +++ -- Calculated as: 40 +++ (20 +++ (50 +++ (10 * 10))). Result: 75.
-- infixl 6 …
Run Code Online (Sandbox Code Playgroud)

haskell infix-notation

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

如何在docker容器中运行selenium chrome驱动程序?

TL;博士

如何安装所有组件以在docker容器中运行Selenium?


我从这张图片开始:

FROM microsoft/aspnetcore-build:2 AS builder
WORKDIR /source

COPY . .
RUN dotnet restore
RUN dotnet build
ENTRYPOINT ["dotnet", "run"]
Run Code Online (Sandbox Code Playgroud)

我该如何制作它以便我可以启动并使用无头Chrome驱动程序:

ChromeOptions options = new ChromeOptions();
options.AddArgument("--headless");
options.AddArgument("--disable-gpu");
var driverPath = Path.GetFullPath(Path.Combine(environment.ContentRootPath, "bin/Debug/netcoreapp2.0"));
return new ChromeDriver(driverPath, options, TimeSpan.FromSeconds(60));
Run Code Online (Sandbox Code Playgroud)

在docker容器内?


我试过了什么

安装Chrome驱动程序

chromedriver通过Selenium.WebDriver.ChromeDriverNuGet包分发.

安装Chrome

在安装了Google Chrome的Mac OS X上,当前设置工作正常.

我试图添加这些行:

RUN apt-get update && apt-get -y install libglib2.0-dev libxi6 libnss3-dev
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ …
Run Code Online (Sandbox Code Playgroud)

c# asp.net selenium docker asp.net-core

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

将Ruby转换为低级语言?

我用Ruby编写了各种脚本:

rails (symfony)
ruby (php, bash)
rb-appscript (applescript)
Run Code Online (Sandbox Code Playgroud)

是否有可能用Ruby替换低级语言?

我用Ruby编写并将其转换为java,c ++或c.

原因人们说当涉及到Ruby中更多性能关键任务时,你可以用C扩展它.但是,这个词意味着你编写你刚刚在Ruby代码中调用的C文件.我想,我可以改用Ruby并将其转换为C源代码,将其编译为机器代码.然后我可以用C语言"扩展"它,但是在Ruby代码中.

这就是这篇文章的内容.在Ruby中编写所有内容但获得C(或Java)的性能.

第二个优点是您不必学习其他语言.

就像HipHop for PHP一样.

这有实现吗?

ruby

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

C中的类型 - int*和int*[100]有什么区别?

有点像菜鸟所以不要在这里杀了我.

以下代码之间有什么区别?

int *p;         //As i understand, it creates a pointer to an variable of size int.
int *p[100];    //Don't really know what this is.
int (*p)[100];  // I have come to understand that this is a pointer to an array. 
Run Code Online (Sandbox Code Playgroud)

c pointers

12
推荐指数
3
解决办法
4125
查看次数