标题:一个关于integer 数组的元素插入的例程
只看楼主
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
其实他没有问题,他只是问了一个概念而已。这些概念书上都有的,翻开一本书认真地看就是了。如果没有耐心看书,那就没办法了。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-10-16 00:23
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 

// 请注意,这里插入的位置相对于 0 位置而言,也就是说,如果你要求的插入位置为3,他将插入在原数组的第四个元素之前。

#include <iostream> #include <cstdlib> #include <memory.h> using namespace std;

class Demo { private: int * your_integer_array; int size_of_your_integer_array; public: Demo(); bool creat_your_integer_array(const int const * an_integer_array, int size); void insert_element_at_a_position(int pos, const int element); void display() { if(your_integer_array) { for(int i = 0; i<size_of_your_integer_array; i++) { cout<<your_integer_array[i]<<" "; } } } ~Demo() { if(your_integer_array && size_of_your_integer_array == 1) delete your_integer_array; else if(your_integer_array) delete [] your_integer_array; else ; } };

Dem:Demo() { your_integer_array = NULL; size_of_your_integer_array = 0; } bool Dem:creat_your_integer_array(const int const * an_integer_array, int size) { bool success = false; if(size && an_integer_array) { if(your_integer_array && size_of_your_integer_array==1) { delete your_integer_array; your_integer_array = new int[size]; if(your_integer_array) { success = true; size_of_your_integer_array = size; memcpy(your_integer_array, an_integer_array, size*sizeof(int)); } } else if(your_integer_array) { delete [] your_integer_array; your_integer_array = new int[size]; if(your_integer_array) { success = true; size_of_your_integer_array = size; memcpy(your_integer_array, an_integer_array, size*sizeof(int)); } } else { your_integer_array = new int[size]; if(your_integer_array) { success = true; size_of_your_integer_array = size; memcpy(your_integer_array, an_integer_array, size*sizeof(int)); } } } return success; } void Dem:insert_element_at_a_position(int pos, const int element) { int * temp = NULL; if(your_integer_array && pos<size_of_your_integer_array) { temp = new int[size_of_your_integer_array+1]; memcpy(temp, your_integer_array, pos*sizeof(int)); temp[pos] = element; memcpy(&temp[pos+1], &your_integer_array[pos], (size_of_your_integer_array-pos)*sizeof(int)); if(size_of_your_integer_array>1) { delete [] your_integer_array; size_of_your_integer_array++; your_integer_array = new int[size_of_your_integer_array]; memcpy(your_integer_array, temp, size_of_your_integer_array*sizeof(int)); delete [] temp; } else { delete your_integer_array; size_of_your_integer_array++; your_integer_array = new int[size_of_your_integer_array]; memcpy(your_integer_array, temp, size_of_your_integer_array*sizeof(int)); delete [] temp; } } }

int main() { int test_array[10] = {1,2,3,4,5,6,7,8,9,10}; int size = sizeof(test_array)/sizeof(int); int element = 108; int pos = 3; Demo myDemo; myDemo.creat_your_integer_array(test_array, size); myDemo.insert_element_at_a_position(pos, element); myDemo.display(); cout<<endl; system("pause"); return 0; }


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-10-16 05:55
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
代码贴上来之后,一个冒号被吃掉了,大家自己加上就是了。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-10-16 05:58
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 
kai的确是好斑竹,服了u...
2004-10-16 21:10
骇客
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-11-9
得分:0 
我也想骂那个混蛋
2004-11-13 10:19
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 
晕~~~不用了,谢谢“骇客”朋友,就让此帖沉了吧,不要再顶了,当初是我的错。
2004-11-13 10:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-6413-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.262970 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved