首页 > 其他分享 >vector 动态添加

vector 动态添加

时间:2023-08-29 10:44:38浏览次数:32  
标签:std myVector end include vector input 动态 添加


#include <iostream> #include <vector> #include <string> #include <algorithm> int main() { std::vector<std::string> myVector; // 创建一个空的vector<string> std::string input; std::cout << "请输入字符串(输入exit退出):" << std::endl; while (true) { std::cin >> input; if (input == "exit") { break; // 如果输入为exit,则退出循环 } // 查找输入的字符串是否已经存在于vector中 auto it = std::find(myVector.begin(), myVector.end(), input); if (it == myVector.end()) { myVector.push_back(input); // 如果字符串不存在,则添加到vector中 } else { std::cout << "该字符串已存在!" << std::endl; } } std::cout << "你输入的字符串为:" << std::endl; for (const auto& str : myVector) { std::cout << str << std::endl; // 输出vector中的所有字符串 } return 0; }

如果vector包含结构体,而结构体中有一个string类型的成员,要判断结构体中的成员string是否存在,如果不存在则动态添加,可以使用std::find_if()函数结合lambda表达式来查找元素是否存在,如果返回的迭代器指向vectorend()位置,则表示元素不存在,可以使用push_back()函数来添加元素。

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

struct MyStruct {
    std::string name;
    int age;
};

int main() {
    std::vector<MyStruct> myVector; // 创建一个空的vector<MyStruct>

    std::string input;
    std::cout << "请输入姓名(输入exit退出):" << std::endl;

    while (true) {
        std::cin >> input;
        if (input == "exit") {
            break; // 如果输入为exit,则退出循环
        }
        
        // 查找姓名是否已经存在于vector中的结构体中
        auto it = std::find_if(myVector.begin(), myVector.end(), [&](const MyStruct& s) {
            return s.name == input;
        });
        
        if (it == myVector.end()) {
            // 如果姓名不存在,则添加到vector中的结构体中
            MyStruct newStruct;
            newStruct.name = input;
            myVector.push_back(newStruct);
        } else {
            std::cout << "该姓名已存在!" << std::endl;
        }
    }

    std::cout << "你输入的姓名为:" << std::endl;
    for (const auto& s : myVector) {
        std::cout << s.name << std::endl; // 输出vector中的所有姓名
    }

    return 0;
}

 

标签:std,myVector,end,include,vector,input,动态,添加
From: https://www.cnblogs.com/susiesnai-sun/p/17664161.html

相关文章

  • 动态修改浏览器标签页图标
    //动态修改浏览器图标 getIcon(){//this.favicon是浏览器图标的地址或者路径 if(this.favicon){ letlink=document.querySelector("link[rel*='icon']")||document.createElement('link'); link.type='image/vnd.microsoft.icon......
  • 聊聊spring项目中如何动态刷新bean
    前言前阵子和朋友聊天,他手头上有个spring单体项目,每次数据库配置变更,他都要重启项目,让配置生效。他就想说有没有什么办法,不重启项目,又可以让配置生效。当时我就跟他说,可以用配置中心,他的意思是因为是维护类项目,不想再额外引入一个配置中心,增加运维成本。后边跟他讨论了一个方案,可......
  • vue3 + vite 动态引入不被打包的静态资源
    在开发中,通常会把一些静态资源放在assets文件夹下,但是assets目录下的内容是需要vite编译打包的,所以如果只是引用assets目录下的资源时,使用绝对路径、相对路径均可。但是,在开发中,我们经常会引用一些不被打包的资源,此时该资源是放在public目录下的,那么在引用时,路径的写法如下:不......
  • 【C++STL基础入门】vector运算和遍历、排序、乱序算法
    @TOC前言C++标准库提供了丰富的容器和算法,其中vector是最常用的容器之一。它以动态数组的形式存储元素,并提供了许多方便的运算符和算法来操作和处理数据。本文将介绍vector的基本运算、遍历方法、排序算法以及乱序算法。通过学习这些内容,您将能够更加灵活、高效地使用vector容器。......
  • 博弈论——不完全信息动态博弈(十)
    在动态博弈中,行动有先后次序;在不完全信息条件下,博弈的每一参与人知道其他参与人的有哪几种类型以及各种类型出现的概率,即知道“自然”参与人的不同类型与相应选择之间的关系,但是,参与人并不知道其他的参与人具体属于哪一种类型。由于行动有先后顺序,后行动者可以通过观察先行动者的......
  • docker为已启动的容器添加端口映射
    针对已运行的容器添加端口映射1、查看容器是否映射端口dockerport[容器id或容器名]1有端口映射:无端口映射:2、查看容器完整Iddockerinspect[容器id]|grepId//得到以下结果//"Id":"fcae55f5180a79487662de426863565c7df05ed9b87854093b62776734928d25"......
  • Newtonsoft.Json:JObject 动态添加字段/List<JObject>转DataTable
    1.JObject动态添加字段;varjsonObject=newJObject();foreach(varkeyinKeys){jsonObject.Add(key,value);}jsonObject.Add("*****","1");2. List<JObject>转DataTable1): 首先List<JObject>转stringList<JObject>jso......
  • 百度:为vue站添加百度统计
    一,登录百度统计获取统计代码:使用设置->网站列表->新增网站:填写数据后点确定:配置单页:复制代码:二,添加代码到vue的html页面12345678910111213141516171819202122232425262728293031323334353637<!DOCTYPEhtml><......
  • 为WPF按钮添加UAC盾牌图标
    在上一篇文章中,介绍了如何获取系统Shell的图标。在C#中调用SHGetStockIconInfo即可获取获取图标 定义SHGetStockIconInfo函数用到的数据结构1publicenumSHSTOCKICONID:uint2{3///<summary>Documentofatypewithnoassociatedapplicatio......
  • Codeforces Round 892 (Div. 2)E. Maximum Monogonosity(动态规划,数学)
    题目链接:https://codeforces.com/contest/1859/problem/E 题意: 有长度为n的a和b俩个序列,定义f【l,r】=abs(a【l】-b【r】)+abs(b【l】-a【r】); 给正整数k,求 不相交的区间且  所有  区间的长度 的 和 为k的最大值 是多少? 分析: 这里借鉴一个佬......