C语言删除二维数组的重复数据的一个方法
程序员文章站
2022-06-11 14:36:40
...
C语言删除二维数组的重复数据的一个方法
//以下头文件,未及清理
#include "stdafx.h"
#include <vector>
#include <string>
#include <time.h>
#include <tchar.h>
#include <conio.h>
#include "stdio.h"
#include "stdlib.h"
#include "windows.h"
#include <iostream>
using namespace std;
//删除重复记录 方法:采用逆序循环,从表格的最 (尾-1) 行 开始逆序查找。
//首先对比 (尾-1)与(尾)行,如果重复则删除 (尾)行;
//再次对比 (尾-2)与(尾-1)行,以此类推……
//逆序查找的方法,一次循环即可完成删除重复的工作。
//删除数据的方法 – 用空地址履盖的方法。
//代码示例如下:
if (true)
{
//操作的二维数组 -- new_AllTrade_pArr
int do_lines = new_AllTrade_lines; //数组的行数
int do_columns = new_AllTrade_columns; //数组的列数 固定值 消除windows 带来的乱字符
char* start_data1 = { 0 }; //设置对比列,同时对比两列
char* start_data2 = { 0 };
char* sour1 = { 0 }; //移动取值列
char* sour2 = { 0 };
int delete_count = 0; //删除行数 计数器
int found_line = MAX_LINES; //是否重复? 行号
for (int last_line = do_lines - 2; last_line > 0; last_line = last_line - 1) //逆序以删除连续重复 !!!
{
found_line = MAX_LINES; //计数器 初值
start_data1 = new_AllTrade_pArr[last_line][NEWPARR_TRADE_ORDERCOUNT];
start_data2 = new_AllTrade_pArr[last_line][NEWPARR_TRADE_TIME];
for (int i = last_line + 1; i < do_lines - delete_count; i++) //查找重复,行号给计数器 lineNum_remain
{
sour1 = new_AllTrade_pArr[i][NEWPARR_TRADE_ORDERCOUNT];
sour2 = new_AllTrade_pArr[i][NEWPARR_TRADE_TIME];
if (strcmp(start_data1, sour1) == 0 && strcmp(start_data2, sour2) == 0)
{
found_line = i; //找到重叠的行号
//开始删除
for (found_line; found_line < do_lines; found_line++)
{
for (int j = 0; j < do_columns; j++)
{
new_AllTrade_pArr[found_line][j] = new_AllTrade_pArr[found_line + 1][j]; //全部数据前移 1 行
};
};
++delete_count; //删除的计数器,删除之外再计数
}
};
};
do_lines = do_lines - delete_count; //更新行数
new_AllTrade_lines = do_lines;
};//完成
上一篇: nginx awstats简单配置
推荐阅读
-
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
-
C#不重复输出一个数组中所有元素的方法
-
C#不重复输出一个数组中所有元素的方法
-
C语言:在二维数组中,每行每列都按照递增的顺序排序,判断数组中是否包含一个数。
-
php删除二维数组中的重复值方法
-
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)_PHP
-
给Array本地对象增加一个原型方法,他的用途是删除数组中重复的条目,并将新的数组返回
-
C语言删除二维数组的重复数据的一个方法
-
请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。
-
给Array本地对象增加一个原型方法,用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除重复条目的新数组