c++中字符串向量的索引[关闭]

Posted

技术标签:

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

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

【问题讨论】:

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

【讨论】:

以上是关于c++中字符串向量的索引[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在向量中查找字符串的索引

比较 2 个向量并从第 2 个向量中删除第 1 个中找不到的元素 - c++ [关闭]

C ++通过索引删除指针向量中的值[关闭]

在C ++中将用空格分隔的字符串读入向量[关闭]

每个循环的 c++ 向量不会遍历引用?

如何使用 stringstream 在 C++ 中将字符串转换为双精度值 [关闭]