这是我的第一个问题,我很高兴能成为社区的一员。从阵列中移除元素,然后移动其他元素
我被激发到在这里贴上去除功能的严重问题。我试图删除使用索引和计数关键字我试图从数组中删除元素的条。我在纸上画出了不同的场景,但没有发现明显的模式,所以我不得不在这里问。
比方说,你有 char array[] = {'A','B','C','D','E'};
我的函数删除了这个原型 void remove(char arr[], int& size, int element, int count)
如果一个人写的,有规模已经宣布,remove(array, size, 2, 2)
那么如果打印阵列必须打印ABE。该函数必须转到索引2,然后删除两个元素,然后将其他元素转移。
这里是我想实现的功能:
void remove(char arr[], int& size, int element, int count) {
for (int i = element; i < count; i++) {
arr[element] = arr[element + 1];
}
size = size - count; }
我可以写,以适应具体的测试用例的功能,但我不能概括它为所有不同的输入工作。我相当肯定size = size - count;
是正确的,因为它始终如一地“移除”适当数量的元素,但我不是100%确定的。
如何正确实现此功能?我看到其他人也提出过类似的问题,但不是一次性删除潜在的多个元素。我对矢量的知识也是零,我不认为使用它们可以用于我的其他程序。
就基本上看到了同样的问题昨天: http://stackoverflow.com/q/26434416/103167 – 2014-10-18 18:47:43
哦,我更新;没有什么在这个问题看起来很熟悉:) – RealTimeDouble 2014-10-18 19:07:20