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++中字符串向量的索引[关闭]的主要内容,如果未能解决你的问题,请参考以下文章