C++ vector操作--往列表中添加或更新内容
有个列表,往里面添加内容,如果对象已存在,只更新其属性,否则添加新一项。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct test {
char s;
int score;
}; void print_v1(vector<test> &res) {
vector<test>::iterator it = res.begin();
for (; it != res.end(); ++it) {
cout << "[" << it->s << "," << it->score << "]" << endl;
}
} void add(vector<test> &res, const test i) {
vector<test>::iterator it2 = res.begin();
bool flag = false;
for (; it2 != res.end(); ++it2) {
if (it2->s == i.s) {
it2->score += i.score;
flag = true;
}
}
if (!flag)
res.push_back(i);
} int main() {
vector<test> res;
struct test a1;
a1.s = 'A';
a1.score = ;
struct test a2;
a2.s = 'B';
a2.score = ;
struct test a3;
a3.s = 'C';
a3.score = ;
res.push_back(a1);
res.push_back(a2);
res.push_back(a3); print_v1(res); struct test i1;
i1.s = 'D';
i1.score = ; struct test i2;
i2.s = 'A';
i2.score = ; add(res, i1);
add(res, i2); cout << "------------" << endl;
print_v1(res); system("pause");
return ;
}
运行结果:

C++ vector操作--往列表中添加或更新内容的更多相关文章
- Fedora 21 中添加及更新源的命令
原文: Fedora 21 中添加及更新源的命令 fedora的软件源信息文件(*.repo)都是放在 /etc/yum.repos.d 目录下的.可以通过# ls -l /etc/yum.repos ...
- jq-demo-在列表中添加新节点,点击删除
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 如何给SAP Cloud Connector Region列表中添加新的Region
SAP help里提供了CloudFoundry和Neo环境下可用的Region和API endpoint: 当我们期望用SAP Cloud Connector连接某个SAP云平台Region时,一般 ...
- python 在列表中添加元组元素,按照元组第一个值进行排序
>>> import bisect >>> scores = [(, , , , 'python')] >>> bisect.insort(sco ...
- 用jQuery向div中添加Html文本内容
前台代码: <link href="http://www.cnblogs.com/Content/themes/base/jquery-ui.css" rel="s ...
- Python3基础 print 查看一个列表中存储的所有内容
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- python 小程序,在列表中找到所有指定内容的位置
要求如下图所示:
- chmod a+w . 权限控制 su、sudo 修改文件所有者和文件所在组 添加用户到sudoer列表中 当前用户信息
对当前目录对所有用户开放读写权限 chmod a+r . $ sudo chmod -R a+w /usr/lib/python2.7 所有用户添加文件的写权限 [linux]su.sudo.sudo ...
- 在C#中子线程如何操作主线程中窗体上控件
在C#中,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能 简单的通过控件对象名来操作,但不是说不能进行操作,微软 ...
随机推荐
- 7_springboot2.x开发热部署
概述:在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,我们希望不重启应用的情况下,程序可以自动部署(热部署).有以下四种情况,如何能实现热部署. 1.模板引擎 在Spr ...
- Django(十四)课程机构列表页数据展示,Django的modelform,关于urls的重新分发
关于urls的重新分发: 如果所有url都配置在根路径的urls.py里,会特别多,而且也不易于修改,Django框架里支持urls的重新分发: 1.在根路径的urls配置上: PS:namespac ...
- Aggregate report 聚合报告
- tzfile - 时区信息
SYNOPSIS #include <tzfile.h> DESCRIPTION 时区信息文件被 tzset(3) 使用, 其开头为特征字符"TZif", 以此标示该文 ...
- wc - 输出文件中的字节数、单词数、行数
SYNOPSIS 总览 wc [选项列表]... [文件名列表]... DESCRIPTION 描述 对每个文件输出行.单词.和字节统计数,如果指定了多于一个文件则还有一个行数的总计.没有指定文件或指 ...
- C#获取本月开始日期和结束日期
DateTime dt = DateTime.Now; //本月第一天时间 DateTime dt_First = dt.AddDays( - (dt.Day)); //获得某年某月的天数 int y ...
- Spring入门(三)
测试Spring Bean的自动化装配 方式一:使用配置文件方式启动组件扫描 准备一个接口 package soundsystem; public interface CompactDisc { vo ...
- sqlldr details
https://www.csee.umbc.edu/portal/help/oracle8/server.815/a67792/ch05.htm Loading into Empty and Non- ...
- (补充)9.Struts2中的OGNL表达式
OGNL表达式概述 1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写 * 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关 ...
- 【JZOJ6285】飘雪圣域
description analysis 从求联通块出发根本没做法,于是考虑连通块里面的边 对于一个询问\([l,r]\),一条边的左端点\(≥l\)且右端点\(≤r\)才在这个区间的点之间 于是对于 ...