如何在不使用STL的情况下,基于参数将元素添加到循环中的两个不同数组中? 我对C++非常陌生,所以请告诉我是否有更简单的方法来完成我正在做的事情。
基本上,我在命令行上检查两种不同类型的输入命令。如果用户输入一个C,后跟一个整数1,在这种情况下,我不需要错误检查它是否应该将C 1添加到我的第一个数组中。如果他们输入12400,那么它应该将其添加到第二个数组中 在java中,我只需键入如何在不使用STL的情况下,基于参数将元素添加到循环中的两个不同数组中? 我对C++非常陌生,所以请告诉我是否有更简单的方法来完成我正在做的事情。,c++,arrays,C++,Arrays,基本上,我在命令行上检查两种不同类型的输入命令。如果用户输入一个C,后跟一个整数1,在这种情况下,我不需要错误检查它是否应该将C 1添加到我的第一个数组中。如果他们输入12400,那么它应该将其添加到第二个数组中 在java中,我只需键入 if (input.contains("c")){ cityArray.add(input) else if (input.contains ("a"){ routeArray.add(input) } 或者类似的东西 这是我用C写的++ whi
if (input.contains("c")){
cityArray.add(input)
else if (input.contains ("a"){
routeArray.add(input)
}
或者类似的东西
这是我用C写的++
while(loopCheck == false )
{
cout << "Please Enter A Command:> " << endl;
cin >> Input;
if((cin >> c) ){
cout << "Citys: " << city[] << endl;
}
if (cin == " "){
loopCheck = true;
}
}它实际上与Java中的差别不大。下面是一个使用switch语句处理输入的示例。你可以把它当作一个if子句来练习
#include <iostream>
int main()
{
std::string line;
bool stop = false;
while (!stop && getline(std::cin, line)) {
switch (line[0]) {
case 'C':
// add to first array
std::cout << "Case 'C': '" << line << "'\n";
break;
case 'A':
// add to second array
std::cout << "Case 'A': '" << line << "'\n";
break;
default:
stop = true;
break;
}
}
}
我跳过了插入数组的部分,您应该考虑允许或应该使用什么。因为你不允许使用STL,你应该仔细阅读你的课堂笔记和问题陈述,看看你所学到的关于动态数组和静态数组的知识
记住,在今天的C++应用程序中,你不会使用STL。 目前我假设你在问题中的C++代码并不重要,你主要是在寻找一个合理的java代码。在这种情况下,C++代码看起来类似于java代码,看起来可能是这样的:
std::string input;
std::vector<std::string> cityArray;
std::vector<std::string> routeArray;
// ...
if (input.find('c') != std::string::npos) {
cityArray.push_back(input);
}
else if (input.find('a') != std::string::npos) {
routeArray.push_back(input);
}
至于不允许使用标准图书馆:用线索棒敲你老师的头。如果不使用标准库,您无法仅为几个示例读取任何输入或生成任何输出,因此出于任何实际目的,您的代码根本无法执行任何操作。你可以把每一个程序都写成int main{}然后用它来完成,因为这基本上等同于没有标准库可以做的任何事情。请阅读一本关于C++的书,为什么不想使用STL?我不允许在我所在的类中使用STL。有人能告诉我为什么我在这个问题上得到反对票吗?在提问之前,我花了大约2个小时寻找这个问题的答案。伙计,我认为我们这里有一个很好的社区,这是我第一次感到失望。如果你只想提取整数类型,这可能不是你期望的方法。就像所有的家庭作业一样,看看你在课堂上学到的东西,并使用这些方法。不幸的是,我的课堂根本不教任何C++。我是一名转学生,这是一个中等水平的课程,重点是算法。我希望成为一名高级C++程序员,因为这是学校使用的语言,但是我的旧学校只在我的三年级使用java。那时你处境艰难。读一本好书,并要小心,因为那里有很多垃圾。PuxFub是STD:vector的成员函数,但问题的标题没有使用STL。@ kfsOne:它使用的是来自C++标准库的向量,而不是来自STL的完全分离的库,虽然它确实构成了一些标准图书馆部分设计的基础。@JerryCoffin他是我学校广受憎恨的教授。我们班上的每个人都认为他是个笨蛋,当他说我们不能使用STL的时候,在学期开始时引起了一阵骚动。老实说,我甚至不知道如何或如何不使用STL。任何不是Java的东西都让我很困惑。根据std::vector类是STL的一部分。iostream不是。@ClaytonBrant如果你的课程是关于算法的,那么禁止STL是很自然的。因为所有的通用算法都已经很好地实现了,所以没有图。
std::map<char, std::vector<std::string>> arrays;
// ...
arrays[input[0]].push_back(input);
std::multimap<char, std::string> arrays;
arrays.insert(std::make_pair(input[0], input));