【问题标题】:Index of vector of strings in c++ [closed]c++中字符串向量的索引[关闭]
【发布时间】:2020-05-30 09:02:44
【问题描述】:

我有一个字符串向量,包括:- 化学物理数学。 我想访问每个单词的第一个字符,即物理的化学 p 和数学的 m。怎么做?

【问题讨论】:

  • 向我们展示您的尝试。
  • 我不知道该怎么做
  • 您只需要制作一个 2D 矢量,但我建议您至少向我们展示一些代码,即使它是错误的,以便我们对如何解决这个问题有更多的了解。
  • 你需要写一个minimal reproducible example

标签: c++ string vector


【解决方案1】:

通过这个过程可以输出第一个索引元素。

我制作了一个二维向量并应用了一个 for 循环,因此打印了向量第一个元素的每一行。

#include <iostream>
#include <vector>

int main()
{
    std::vector<std::string> vec = {"chemistry", "maths", "physics"};

    for(int i=0;i<vec.size();i++)
    {

         std::cout << vec[i][0];
    }
    return EXIT_SUCCESS;
}

您还可以使用基于范围的 for 循环

for (auto &i : vec)
    std::cout << i[0] << " ";

输出将是

c m p

【讨论】:

    【解决方案2】:

    您可以将其视为 2D 字符矩阵。

    给定字符串向量:

    std::vector<std::string> vec = {"chemestry", "physics", "math"};
    

    您可以使用普通循环访问所有第一个字符:

    for (int i = 0; i < vec.size(); i++)
        std::cout << vec[i][0] << " ";
    

    或者基于范围的循环:

    for (auto &str : vec)
        std::cout << str[0] << " ";
    

    输出:

    c p m 
    

    【讨论】:

      【解决方案3】:

      我认为这段代码应该可以解决问题。如果不是,那么编译器就是一个种族主义者,并且不太喜欢你。在这种情况下,你可以去找你的老朋友 cpp.sh :D

      String 是一个 char 数组,您可以像这样从索引中访问它的内容

      std::string str = "Hello";
      std::cout << "First Index: " << str[0];
      

      输出:-

      H
      

      向量也是如此

      std::vector <char> str = "World!";
      std::cout << "First Index: " << str[0];
      

      输出:-

      W
      

      现在,如果您将这两者结合起来,它会成为一个二维数组,因此您必须像访问二维数组/矩阵中的数据一样访问它。

      std::vector <std::string> str = {"Hello", "World", "!"};
      std::cout << "First Index Of Element 1: " << str[0][0] << std::endl
                << "First Index Of Element 2: " << str[1][0] << std::endl
                << "First Index Of Element 3: " << str[2][0] << std::endl;
      

      输出:-

      H
      W
      !
      

      程序:-

      #include <iostream>
      #include <vector>
      
      int main() {
          std::vector <std::string> vec = {"chemistry", "physics", "math"};
          for (int i=0; i < vec.size(); i++) {  //-- size(); Function gives the size of a vector
               std::cout << vec[i][0] << std::endl;
          }
          return 0;
      }
      

      输出:-

      c
      p
      m
      Press any key to continue...
      

      【讨论】:

        猜你喜欢
        • 2016-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-01
        • 2014-11-16
        • 1970-01-01
        相关资源
        最近更新 更多