草庐IT

make_pair

全部标签

c++ - 排除使用显式构造的 std::pair 构造函数

从thisanswer开始,似乎这些构造函数:templatepair(pair&&p);templatepair(constpair&p);在需要显式转换时禁止参与重载决策。来自C++11(§20.3.2,n3290):Remark:ThisconstructorshallnotparticipateinoverloadresolutionunlessUisimplicitlyconvertibletofirst_typeandVisimplicitlyconvertibletosecond_type.一个有趣的SFINAEworkaround已被建议,但这偏离了标准的文本。如果没有

c++ - 标准库中 boost::make_transform_iterator 的等价物是什么?

处理constvector时,以下内容不起作用:conststd::vectorv;v.push_back("test");//error:vcannotbemodified相反,您必须在构造它的同一行上初始化vector。然而,即使有这个限制,boost::make_transform_iterator使得在将它们插入v之前对另一个vector的元素做一些事情变得容易。在这个例子中,convert是一个一元函数,返回输入元素的转换版本:autobeg=boost::make_transform_iterator(args.begin(),convert);autoend=boost:

c++ - 在 set<pair>> 中查找具有特定第一个坐标的任何元素

我正在尝试解决以下问题。假设我在C++中有以下容器:std::set>my_container;这个集合(字典)是按照顺序排序的在std::pair,这是字典顺序。我的任务是在my_container中找到任何元素其第一个坐标等于x,并将迭代器返回给它。显然,我不想使用find_if,因为我需要在对数时间内解决这个问题。如果有任何关于如何做到这一点的建议,我将不胜感激 最佳答案 您可以使用lower_bound为此:autoit=my_container.lower_bound(std::make_pair(x,std::numer

c++ - 使用 pair with accumulate 的问题

我正在使用双端队列,因此我可以为我的数据生成滚动平均值和方差。我将n和n^2作为一对存储在双端队列中,然后通过我自己的运算符+()使用accumulate。#include#include#includetemplatestd::pairoperator+(conststd::pair&lhs,conststd::pair&rhs){returnstd::pair(lhs.first+rhs.first,lhs.second+rhs.second);}namespaceresource{templateclassrollingStats{public:rollingStats(unsi

c++ - make_shared是否为每个成员变量做一个默认的初始化(零初始化)

将普通结构(或类)与普通旧数据类型和对象作为成员。请注意,没有定义默认构造函数。structFoo{intx;inty;doublez;stringstr;};现在,如果我在堆栈上声明一个实例f并尝试打印其内容:{Foof;std::cout结果是为x、y和z打印的垃圾数据。并且该字符串默认初始化为空。符合预期。如果我创建一个shared_ptr的实例使用make_shared并打印:{shared_ptrspFoo=make_shared();coutxyzstr那么,x、y、z都是0.这使得shared_ptr看起来在构造对象实例后对每个成员执行默认初始化(零初始化)。至少这是我在

windows - 使用 make 调用批处理文件并使更改持久化

我正在使用生成文件(GNUMake)在命令行上使用VisualC++Express进行编程。为此,我必须调用VisualStudio批处理文件vsvars32.bat来设置环境。在使用make之前,每次我打开一个新的cmd.exe时都必须这样做。当我尝试从我的makefile中调用批处理文件时,它显然将批处理文件执行为一个自己的过程,因为之后的环境是一样的。所以我的问题是:有没有办法像Linux/Unixbash的内置source命令一样在cmd.exe中执行脚本?当然,除了在Windows上安装bash。发布我自己的答案后编辑:上面的问题不太对,应该是这样的:是否可以从makefil

windows - 强制 mingw32-make 忽略 sh

我注意到,如果PATH中存在sh.exe,那么mingw32-make将使用它来启动命令。但如果不是,那么它将使用cmd.exe。问题是这两个应用程序......完全不兼容,并且无法创建对两者都适用的makefile。有没有办法让mingw32-make一直使用cmd.exe?或者创建一个环境强制mingw32-make忽略这个sh.exe? 最佳答案 事实证明,我偶然找到了解决方案。我读过mingw32-make应该查看SHELL环境变量......但它没有!但是,您可以像这样在命令行上指定选项:mingw32-makeSHELL

c++ - Netbeans C++ 尝试 make.exe 的相对路径

我最近在一台PC上重新安装了Windows,但我无法使用MinGw/Msys和Qt4.8.3重新安装NetbeansC++。每次我尝试构建这样的错误消息时:"/d/EigeneDateien/Dokumente/NetBeansProjects/Test_1/"C:/msys/1.0/bin/make.exe""-fnbproject/Makefile-Debug.mkQMAKE=/C/Qt/4.8.3/bin/qmake.exeSUBPROJECTS=.build-conf/bin/sh.exe:/d/EigeneDateien/Dokumente/NetBeansProjects/

json - NPM : make package. json 在 Unix (Mac OSX) 和 Windows 下工作

我从在MacOSX下开发的第三方那里得到了一些NPM包。他们的构建可以使用package.json中的“脚本”对象分为开发或生产。例如:"scripts":{"build":"NODE_ENV=devnodemake.js--build","build-prod":"NODE_ENV=prodnodemake.js--build",}在Unix下,可以运行“npmrunbuild”或“npmrunbuild-prod”来构建任一目录(当然,make.js中有一些条件语句)。当然,它在Windows下不起作用-我不得不更改类似这样的命令:"scripts":{"build":"setNO

c++ - mingw make 文件指南 mingw32-make

我是一名C++程序员,并且有在Linux上使用GCC的经验。我想在Windows中开发应用程序,所以我需要mingwmake文件、变量和mingw32-make的完整指南。有谁可以介绍一下这方面的资源吗? 最佳答案 mingw32-make只是GNUmake的预构建版本,所以http://www.gnu.org/software/make/manual/应该有所有的你需要的信息。 关于c++-mingwmake文件指南mingw32-make,我们在StackOverflow上找到一个类