将元素插入数组中
Inserting an element into an array
如何制作一个将数字按正确顺序添加到数组中的插入方法?
void addElement(int table[], int element, int length) {
int x = 0;
int temporary=0;
cout<<length<<endl;
if(length == 1) {
table[0] = element;
}
else {
if(length == 2) {
if (table[0] > element) {
int temp = table[0];
table[0] = element;
table[1] = temp;
}
else {
table[1] = element;
}
}
else {
for(int i = 0; i< length && x == 0; i++) {
if(element<table[i] && element>=table[i-1]) {
for(int y = i; y<length; y++) {
temporary = table[y+2];
int temp = table[y];
table[y] = element;
table[y+1] = table
}
}
}
}
}
}
这是我所能做到的。在我的主要课程中,我已经计算出了数组增加1的结果。因此,在数组的末尾有一个开放空间,用于将所有内容向后推1。
您可以从后向前扫描数组,向上移动值,直到找到正确的插入点。
void addElement(int *table, int element, int length)
{
int i = length - 1;
for (; i > 0 && table[i-1] > element; --i)
{
table[i] = table[i-1];
}
table[i] = element;
}
写一个shiftElements函数,写一个findIndexOfFirstGreaterThan函数,然后在addElement-中找到索引,如果-1则放在最后一个slot中,否则用index移位元素,则a[index]=elem;
给自己画一个例子,然后列出做你想做的事情所需的非常简单的步骤列表。
然后编写执行这些步骤的代码。
我不确定这是否是你想要的,但我认为你想要的是根据其整数值添加元素的东西。此外,我现在无法访问编译器,因此可能会出现一些错误。下面的代码只是给你一个简单的想法,你可以做什么,但可能不是你的问题的完美解决方案。
int addElement (int element, int array [], int length)
{
vector <int> vectorOfInts; //vector to store current order of ints
vector <int> vectorOfArrangedInts; //vector to store arranged order
for (int counter = 0; counter < length; counter ++) //loop to fill the array with values
{
vectorOfInts.push_back (array [counter]);
}
for (int counter = 0; counter < vectorOfInts.length(); counter ++) //loop through all elements
{
int temp = 0; //stores temp value of biggest number found at a specific moment
int elementIndex; //stores indexes
for (int counterTwo = 0; counterTwo < vectorOfInts.length(); counterTwo ++) //loop through all elements to find the biggest array
{
if (vectorOfInts.at (counterTwo) >= temp) //if value is bigger than current biggest number
{
temp = vectorOfInts.at (counterTwo); //change temp value
elementIndex = counterTwo; //remember index
}
}
vectorOfArrangedInts.push_back (vectorOfInts.at(elementIndex)); //add the biggest number to the arranged values
vectorOfInts.erase (vectorOfInts.begin() + elementIndex); //remove the biggest element
}
相关文章:
- C++json插入数组
- 正在插入动态数组
- 如何在向量数组中插入元素?
- 将值插入到标准 c++ 数组的正确索引(升序)中
- C++ - 将元素按升序插入数组的 SEG 错误
- 将二维数组的所有元素插入到一维数组中
- 插入数组时违反写访问冲突
- 尝试将对象插入空指针数组时出现分段错误
- 类数组插入函数
- 将数组的元素插入映射的时间复杂度是多少?
- 当索引位于末尾和空数组时,向数组插入元素时出现问题
- C++ 使用数组插入到二叉搜索树中
- 将 2D 数组插入 std::vector 时"cannot convert from 'const GLfloat [12]' to '_Objty'"错误消息
- 如何使用 mongo-cxx-driver 的 **insert** 函数将包含静态数据的多维数组插入到数据库中
- 如何将字符数组插入浮点向量
- 如何将数组插入无序集合
- 用c++将数组数组插入mongo中
- visual C++将整数的二维数组插入到另一个整数的二维阵列中
- 优化数组插入C/ c++
- c++如何将数组插入哈希集