我是 C++ 新手,我想知道您将如何从数组中动态插入和删除项目。例如:
>> insert(1)
[1]
>> insert(2)
[1,2]
>> delete()
[1]
目前我对任何库都不感兴趣,我只想能够掌握 C++ 的基础知识。我还应该提到,该数组将没有任何值开始。
我是 C++ 新手,我想知道您将如何从数组中动态插入和删除项目。例如:
>> insert(1)
[1]
>> insert(2)
[1,2]
>> delete()
[1]
目前我对任何库都不感兴趣,我只想能够掌握 C++ 的基础知识。我还应该提到,该数组将没有任何值开始。
由于您对 STL 容器不感兴趣(尽管我建议您查看它,例如vector
),因此声明一个您想要的任何最大大小的数组
int arr[10];
现在通过索引访问数组中的元素并赋值
arr[0] = 5; //indexes start from 0 and in this case till 9
或将索引变量保留为
int index = 0;
插入时,使用:
arr[index] = value;
index++;
在使数组中的元素可用时,只需减少索引以指向后面的索引可以自由填充。
编辑:
请看下面的代码:
#include<iostream>
using namespace std;
int main()
{
int arr[10];
int choice;
int num;
int index = 0;
do
{
cout<<"enter you choice:\n";
cout<<"1. add number\n";
cout<<"2. delete number\n";
cout<<"3. display memory\n";
cout<<"anything else to exit\n";
cin>>choice;
switch(choice)
{
case 1:
if(index==10)
{
cout<<"no more space available\n";
}
else
{
cout<<"enter number: ";
cin>>num;
arr[index++] = num;
}
break;
case 2:
if(index==0)
{
cout<<"memory empty\n";
}
else
{
cout<<"item deleted!\n ";
index--;
}
break;
case 3:
for(int i = 0;i<index;i++)
{
cout<<arr[i]<<'\t';
}
cout<<endl;
break;
default:
cout<<"exiting.......";
}
}while(choice>0 && choice<4);
}
使用std::vector
.
您可以使用push_back
在向量的后面插入并pop_back
删除最后一个元素。
一个例子:
#include <vector>
#include <iostream>
int main()
{
std::vector<int> numbers;
numbers.push_back(1)
numbers.push_back(2);
numbers.pop_back();
for (int i : numbers) { // c++11 range-based for loop
std::cout << i << '\n';
}
}
像您的示例中一样打印 1 。
看看std::vector
std::vector<int> arr;
arr.push_back(1);
arr.push_back(2);
arr.pop_back();
在 C++ 的基础知识中没有这样的东西,你必须使用一个库(或者当然是编写你自己的库)。您通过每个 C++ 实现获得的标准库都有一个名为的类std::vector
,它可以满足您的需求。
#include <vector>
int main()
{
std::vector<int> a;
a.push_back(1);
a.push_back(2);
a.pop_back();
}