【C++】std::vector容器按条件删除中间某项或某几项【2023.07.21】

简介

  目标是std::vector使用for循环进行遍历,然后满足条件的删除。下面给出较优雅的一种写法。

代码

typedef struct _Daily 
{
	int64_t id;//主键 仅保持唯一性用,无实际意义
	int64_t taskid;
	QString strOperations;
	QString strLabels;
	QString richText;
	QString content;//任务内容,从主任务表查询到的
	_Daily() : id(0), taskid(-1)
	{

	}

} Daily; 

/*	1. 变量定义 std::vector m_vecDaily;*/
/*	2.遍历vector,满足条件的删除*/
	for (auto iter_daily = m_vecDaily.begin(); iter_daily != m_vecDaily.end();)
	{
		if ( 1 == iter_daily->taskid; }))//遍历vecTaskA .任务项已被删除
		{
			pDM->deleteData(m_tableName, *iter_daily);注意:先使用迭代器,再从vector中,erase
			iter_daily = m_vecDaily.erase(iter_daily);
		}
		else
		{
			++iter_daily;
		}
	}

你可能感兴趣的:(c++,算法,开发语言)