如何在不使用STL的情况下,基于参数将元素添加到循环中的两个不同数组中? 我对C++非常陌生,所以请告诉我是否有更简单的方法来完成我正在做的事情。

如何在不使用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

基本上,我在命令行上检查两种不同类型的输入命令。如果用户输入一个C,后跟一个整数1,在这种情况下,我不需要错误检查它是否应该将C 1添加到我的第一个数组中。如果他们输入12400,那么它应该将其添加到第二个数组中

在java中,我只需键入

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));