c++ - 如何修复 C++ 中向量的重载变量错误
问题描述
我想实现向量,以便它们可以用作动态数组。我也想实现相同的功能,以便它自动检查向量的数据类型并执行操作。有各种我无法解决的运行时错误。
这是我的实现:
#include<iostream>
#include<vector>
using namespace std;
void arrayInsert(vector<char>, char a);
char arraySearch(vector<char>, char a);
void arrayDelete(vector<char>, char a);
void arrayInsert(vector<int>, int a);
int arraySearch(vector<int>, int a);
void arrayDelete(vector<int>, int a);
int main()
{
int ch = 0;
char a;
int a;
vector<int> arr;
vector<char> arr;
do
{
do
{
cout<<"Arrays Program!!!\n\n";
cout<<"1. Insert in the array\n";
cout<<"2. Search a element in the array\n";
cout<<"3. Delete from the array\n";
cout<<"4. Exit\n";
cout<<"\nEnter your choice:";
cin>>ch;
if(ch < 1 || ch > 4)
cout<<"Invalid Choice!! Try again";
}while(ch < 1 || ch > 4);
switch(ch)
{
case 1: cout<<"Enter the element in the array:\n";
cin>>a;
arrayInsert(arr,a);
break;
case 2: cout<<"Enter the element to be searched:";
cin>>a;
int flag = arraySearch(arr,a);
if(flag == NULL || flag == -1)
cout<<"\nElement Not Found!";
else
{
cout<<"\nElement found at index "<<flag;
}
break;
case 3: cout<<"\nEnter element to be deleted:";
cin>>a;
arrayDelete(arr,a);
break;
case 4: cout<<"Exiting Program!!!";
exit(0);
}
}while(ch >= 1 || ch <= 4);
return 0;
}
void arrayInsert(vector<char> arr, char a)
{
arr.push_back(a);
}
void arrayInsert(vector<int> arr, int a)
{
arr.push_back(a);
}
char arraySearch(vector<char> arr, char a)
{
for(int i = 0; i<arr.size(); ++i)
{
if(arr[i] == a)
{
return i;
}
else
{
return NULL;
}
}
}
int arraySearch(vector<int> arr, int a)
{
for(int i = 0; i<arr.size(); ++i)
{
if(arr[i] == a)
{
return i;
}
else
{
return -1;
}
}
}
void arrayDelete(vector<char> arr, char a)
{
for(vector<char>::iterator i = arr.begin(); i<arr.end(); ++i)
{
if(*i == a)
{
arr.erase(i);
}
else
{
cout<<"\nElement does not exist in the array!";
}
}
}
void arrayDelete(vector<int> arr, int a)
{
for(vector<int>::iterator i = arr.begin(); i<arr.end(); ++i)
{
if(*i == a)
{
arr.erase(i);
}
else
{
cout<<"\nElement does not exist in the array!";
}
}
}
这些是错误: 错误屏幕截图
解决方案
推荐阅读
- python - Python - 从其他两个列表随机生成一个新列表
- php - PHP 致命错误:未捕获的错误:函数名必须是字符串
- django - 通过模板执行视图后,Django 视图无法正确呈现
- r - R to MySQL 抛出错误“无法运行语句:无效的 utf8mb4 字符串”
- c# - 不等待 Async 方法,该方法又在其中等待
- javascript - 滑块菜单使外部元素不可点击
- c++ - 在 cmake3 上指定临时构建文件路径
- azure - 导出所有 Azure AD 组及其成员 (PowerShell)
- json - VBA JsonConverter 添加额外的引号
- python - Matplotlib - 让颜色条与绘图中的颜色对齐并使用原始值作为标签