220 33508 <CAFk2RUZ8BFq-EEtoEa4hfBkyiTHBSEyYnHS8XrHAC_Rg0t+yhg@mail.gmail.com> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Ville Voutilainen <ville.voutilainen@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Free function std::contains in algoritm and map
Date: Tue, 1 Aug 2017 20:31:36 +0300
Lines: 57
Approved: news@gmane.org
Message-ID: <CAFk2RUZ8BFq-EEtoEa4hfBkyiTHBSEyYnHS8XrHAC_Rg0t+yhg@mail.gmail.com>
References: <b7cc5b96-2165-4b4d-a9d3-7ddec49ca626@isocpp.org>
 <CAFk2RUbMLLU6-zfnyFk_=FyAYU=cNNMCb=q6jijNf1Gr_FF+tQ@mail.gmail.com> <CAFk2RUaUTWj7xOz3aC-fDy754XYptA0U-SKtmSm+qn9pcek_Dw@mail.gmail.com>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
X-Trace: blaine.gmane.org 1501608704 5085 195.159.176.226 (1 Aug 2017 17:31:44 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Tue, 1 Aug 2017 17:31:44 +0000 (UTC)
To: "ISO C++ Standard - Future Proposals" <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBC5JHI7A7ALRB6PVQLGAKGQE3565A6Y@isocpp.org Tue Aug 01 19:31:40 2017
Return-path: <std-proposals+bncBC5JHI7A7ALRB6PVQLGAKGQE3565A6Y@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-pf0-f199.google.com ([209.85.192.199])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBC5JHI7A7ALRB6PVQLGAKGQE3565A6Y@isocpp.org>)
	id 1dcb13-0000lE-88
	for gclcip-std-proposals@m.gmane.org; Tue, 01 Aug 2017 19:31:33 +0200
Original-Received: by mail-pf0-f199.google.com with SMTP id r187sf22563460pfr.8
        for <gclcip-std-proposals@m.gmane.org>; Tue, 01 Aug 2017 10:31:39 -0700 (PDT)
ARC-Seal: i=2; a=rsa-sha256; t=1501608698; cv=pass;
        d=google.com; s=arc-20160816;
        b=GcPQ2pkkcXUnt+exWSpyXR5i3zvn+ssrXIgdkZVoLGe16KZCPqaMQ3oiUsqtNoCTsI
         q14WfJkHo7DH9yBg3vqf2WWwctiXDIKcHL/GBcX9XCalwxsfj0UrLWAijMcRe60rkPBR
         4KwafkQTlrxsKKygPDpAGR1pTNgXIkTM0y4326Nf3K862j/NrW/YuGzNI2gPktkuO9pX
         XJJLFTief4/kKTuGEyHvDvyddvgJPnTfLOjTpLiUw5fUrhkZBNyMO3jmnJGdnaDvkZZ8
         yZec1xC02qiM7qWUaMjjyh5aRmMK7/JZGzEwV6kyk5UVQoQgSLtbKPNkRpLq43zeSQgR
         NEig==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
         :list-id:mailing-list:precedence:reply-to:to:subject:message-id:date
         :from:references:in-reply-to:mime-version:arc-authentication-results
         :arc-message-signature:dkim-signature:arc-authentication-results;
        bh=XBlzT2/tb6WByUI/of3wJZp8v2fOY9CUd2vJvQ1j8lw=;
        b=wk4U0NCJ5jsJ9KN50bxFc2/7IQ9odDELnYjW90U0xcUyYhQTupxQ/KuwvVhylLVtE/
         w9OIkECjBgEjECV5mjCu4mIg3LOoonnozt4Ma0ByX9nKbIebFms8WBJkcIsCHkWpDJtl
         I14qGOi9voXuyuZtDkJ9h2oJh7pNvqvciTMTrR840EoWECybZbBwlk288hnO7m2kx7gb
         v6hLorCenVcOqhg2ZJQHLamKs4iBinaMBmtVqqRSTvOSXJ6J0s7AuIp2p9GAVFVg3LyS
         AD1hrIbbEV6ieqH9fvbTaWWV5fssBmDLBf/XySRmVON84wCfF4a0BLDfGAeS2m0U19uY
         q07w==
ARC-Authentication-Results: i=2; mx.google.com;
       dkim=pass header.i=@gmail.com header.b=l/W/InHa;
       spf=pass (google.com: domain of ville.voutilainen@gmail.com designates 2607:f8b0:400c:c05::241 as permitted sender) smtp.mailfrom=ville.voutilainen@gmail.com;
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=mime-version:in-reply-to:references:from:date:message-id:subject:to
         :x-original-sender:x-original-authentication-results:reply-to
         :precedence:mailing-list:list-id:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=XBlzT2/tb6WByUI/of3wJZp8v2fOY9CUd2vJvQ1j8lw=;
        b=NP9EYLeMT0h8uov5OPhTdTOHwfPlnTwRZqxYKWJ1a9Pdk0sOwqf9pMrEtioqlbBwgf
         2x6Em9GGUI5QDn3Q6LYW7q+FDre/burfu0nepqXSev2+FeyKrKb/mff1maJyfpQ3fSei
         P330LkAyyTwB0WRUJJ5HllKU14iw3FvMy6b5XZMah08AjGFgVfcnSMtPjK5SpDpVQuqj
         wX1THBCqrD+NZ/06W6/HSZGwzp0PzHH2H5wzNNHIQJGVh0/4Hx0P28YkuBWof/oPRZVd
         m0i2ptfvzytAEc63RtFlxOcMdlPWWETUVhCjsMmqF9HBR7qPlVKlIZ/EancRCS5HJDMb
         cDAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:in-reply-to:references:from:date
         :message-id:subject:to:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=XBlzT2/tb6WByUI/of3wJZp8v2fOY9CUd2vJvQ1j8lw=;
        b=kQh1Ev+5wMYUjICWeeldwi0D26Qn2LCujMVSCDBhjOpTzipTa+sCd1vRLhuCalSaBB
         nTJfWQVjjAs3cBjK64GNmNTY7DJkypXOqu+9JTPqNLaoX0fTYTlpDOVBSXv/wGdcmge/
         4z4quxNagP/HPPWolle2TbyRyp78iM2GnUIV0vf2mxL+0hFxN5HFk+UpmdoDUrDTVsOj
         vVUw/76VotUtvpJa1v7CrcfLWqyr/BX2UdXwNsRDegmsq/bLzvu2pfvfcy3MqOZ1BN+0
         3T0eoKnh+7g7Rv1J/v82DXkWxDSCCsoloLHvLD2ypBgEzc5QPFqtV/cat9EUj++OKUub
         710A==
X-Gm-Message-State: AIVw110d7r/UdO9UrcdzxF03in6oRBuDbrq8wXprqRG9Y+9luVLG6cGp
	VktIrs0oKVN2mPZF
X-Received: by 10.99.147.75 with SMTP id w11mr14663260pgm.77.1501608698306;
        Tue, 01 Aug 2017 10:31:38 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.36.36.23 with SMTP id f23ls1561233ita.2.gmail; Tue, 01 Aug
 2017 10:31:37 -0700 (PDT)
X-Received: by 10.159.36.81 with SMTP id 75mr14343365uaq.62.1501608697374;
        Tue, 01 Aug 2017 10:31:37 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1501608697; cv=none;
        d=google.com; s=arc-20160816;
        b=f/ojteHgc/3mEemFwkmxN7QGfilE1AaxVGxGlxke77l2eu1VhHtXOvXrdg9K0d8nou
         k1ryduMv7WR/aRSMAkdA2ReiiXJXSQ7rDDn2dVqAlSIlzvtT6QKW8GpE9snY7ujrGGcv
         KkjBQ8sUoaW9IzQp/2Rkq+h086J5jOXwKnZA3nsSSxG8WOZyH2SrSNauz0B+PJ5w1vP/
         cMx2CA5AxNgFJ0ncWkM0XxPNqPR02PrRHWdmx9WATJ+1+VxzzHqo0Fu0xvZ3eutC7pJN
         p5fG0DfD6cdtQNraIcK90YrF94x7/GzqtCrcKl/P0YoYLe2hCgne+pMOE+yekwp10Mb1
         lGjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=to:subject:message-id:date:from:references:in-reply-to:mime-version
         :dkim-signature:arc-authentication-results;
        bh=/4ESexXUdmY5XLT8xE3JpnAQUvSudfq40Ein1gfb2yA=;
        b=bzFYpHCXZC7Ew8gSp/rUb1Rg30YC2WTgMba6iaw3ejvp6B0y2CbFFvuDwcUzutlqzq
         efE8XuU5+Gy4kkpsVMkG6EhVacsZ4fsiDDeBFYH8Cj7HF8o4FiscLnzmyerBZrk6pB/N
         PUE/pLZQ4u3Hi1K9yzGoSr3Y0sDJJjQFAOb9mx88+379cZyEEYpDXIjKnJrR0yo7+I1k
         mpeNFbPPk/liOOWOAZ1SAReCG3xrsWTWJk2STa0KqGfOGrlWjUsNrnxzIBO9k8M4s7Sb
         qGVfD07pUvQ2vELnXHbxmvnZghTYz5xRTplbDm/ciVm3jdTAClO6/1VleDU/ufaiVpiq
         OfqA==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=@gmail.com header.b=l/W/InHa;
       spf=pass (google.com: domain of ville.voutilainen@gmail.com designates 2607:f8b0:400c:c05::241 as permitted sender) smtp.mailfrom=ville.voutilainen@gmail.com;
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com
Original-Received: from mail-vk0-x241.google.com (mail-vk0-x241.google.com. [2607:f8b0:400c:c05::241])
        by mx.google.com with ESMTPS id h8si2194270uac.309.2017.08.01.10.31.37
        for <std-proposals@isocpp.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Tue, 01 Aug 2017 10:31:37 -0700 (PDT)
Received-SPF: pass (google.com: domain of ville.voutilainen@gmail.com designates 2607:f8b0:400c:c05::241 as permitted sender) client-ip=2607:f8b0:400c:c05::241;
Original-Received: by mail-vk0-x241.google.com with SMTP id g189so1093547vke.0
        for <std-proposals@isocpp.org>; Tue, 01 Aug 2017 10:31:37 -0700 (PDT)
X-Received: by 10.31.12.136 with SMTP id 130mr4672023vkm.164.1501608696980;
 Tue, 01 Aug 2017 10:31:36 -0700 (PDT)
Original-Received: by 10.103.103.65 with HTTP; Tue, 1 Aug 2017 10:31:36 -0700 (PDT)
In-Reply-To: <CAFk2RUaUTWj7xOz3aC-fDy754XYptA0U-SKtmSm+qn9pcek_Dw@mail.gmail.com>
X-Original-Sender: ville.voutilainen@gmail.com
X-Original-Authentication-Results: mx.google.com;       dkim=pass
 header.i=@gmail.com header.b=l/W/InHa;       spf=pass (google.com: domain of
 ville.voutilainen@gmail.com designates 2607:f8b0:400c:c05::241 as permitted
 sender) smtp.mailfrom=ville.voutilainen@gmail.com;       dmarc=pass (p=NONE
 sp=NONE dis=NONE) header.from=gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Google-Group-Id: 399137483710
List-Post: <https://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <https://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <https://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:33508
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/33508>

On 1 August 2017 at 20:29, Ville Voutilainen
<ville.voutilainen@gmail.com> wrote:
> On 1 August 2017 at 20:26, Ville Voutilainen
> <ville.voutilainen@gmail.com> wrote:
>> On 1 August 2017 at 20:22,  <david.bolvansky@gmail.com> wrote:
>>> Instead of comparing with end(), there could be a new function - contains.
>>>
>>> Now
>>>
>>> if(std::find(vector.begin(), vector.end(), item) != vector.end()){
>>>     // found
>>> } else {
>>>     // not found
>>> }
>>>
>>>  // maps
>>>
>>> if(map.find("key") != map.end()){
>>>     // found
>>> } else {
>>>     // not found
>>> }
>>>
>>>
>>>
>>> I propose "contains" function:
>>>
>>> if(std::contains(vector.begin(), vector.end(), item)){
>>>     // found
>>> } else {
>>>     // not found
>>> }
>>>
>>>  // maps
>>>
>>> if(map.contains("key")){
>>>     // found
>>> } else {
>>>     // not found
>>> }
>>
>>
>> Just use std::count and map::count.
>
> ..well, except that wastes cycles since it won't stop before the end
> of the range for vector.

...which means that for vector, any_of is what you want. It's not named
'contains', and you'll just
have to live with it.

-- 
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAFk2RUZ8BFq-EEtoEa4hfBkyiTHBSEyYnHS8XrHAC_Rg0t%2Byhg%40mail.gmail.com.

.
