比如说,如何从字符串向量中找到第二个位置?
这是一个字符串向量示例:
1 2 3 4 Hi
7 8 9 0 Bye
2 2 5 6 World
如果我使用example.at(2)
,它会给我整行2 2 5 6 World
。
我只想从第一行获取2
,而不是整个2 2 5 6 World
行。我该怎么办?
答案 0 :(得分:2)
example.at(2)
的返回值是向量中的第三项,在本例中为std::string
。
要访问字符串中的特定字符,可以使用operator[]
。因此,要从第一行中选择2,您只需执行以下操作:
example.at(0)[2];
答案 1 :(得分:1)
因此,您实际拥有的是vector
中的string
,其中string
代表另一个维度,因此您有一个既有行又有列的表,类似于2D数组,其他访问单个单元格,您需要2个索引,一个索引用于vector
中的位置,另一个索引用于string
中的位置。
因此,在您的情况下,example[0][0]
是要在第一行中获取字符串的第一个char
,而要查找的则是example.at(0)[2]
; < / p>
答案 2 :(得分:1)
这应该有效:
#include <iostream>
#include <string>
#include <vector>
int main() {
std::vector<std::string> strings;
strings.push_back("1234Hi");
strings.push_back("7890Bye");
std::cout << strings.at(0)[1] << std::endl; // prints 2
std::cout << strings.at(1)[1] << std::endl; // prints 8
}
有点像一个二维数组:推到向量上的每个字符串都类似于第一维,然后字符串的每个字符都类似于第二维。
但是如上所述,可能有更好的方法,具体取决于您要尝试执行的操作。
答案 3 :(得分:1)
其他答案显示了如何访问字符串中的单个数字,但是它们假定数字的长度始终为1位数字。如果您需要支持多位数,请使用std::istringstream()
或std::stoi()
来解析字符串。