在这篇文章中,我们将学习如何使用C++从一个字符串中提取整数并将其存储在一个向量中。
首先,我们来定义向量和字符串。向量是数组的一个更稳健的版本,与数组相比,更不容易出错。与数组不同的是,数组是静态的,其大小需要事先声明,向量是动态的,可以自行调整大小。使用向量的好处是它可以为增长分配空间,然而,正因为如此,与使用数组相比,它们也会消耗更多的内存。 字符串是一个一维数组,代表了像整数和字母一样的字符序列。
现在让我们来看看一个示例问题:
Input: String = "There are 5 dogs and 3 cats."
Output: 5 3
Input: String = " OpenGenus 11 22 234 test"
Output: 11 22 234
为了从字符串中提取整数,我们将使用stringstream。Stringstream是C++中的一个流类,可以让你对字符串进行操作。字符串流允许你读取、提取或插入字符串对象。我们将把字符串传递给stringstream,使用一个循环,我们可以查看每个字,并检查它是否是一个整数。如果检测到一个整数,它将被追加到一个向量中。循环将继续下去,直到它到达字符串的末端。
将字符串传递给stringstream
在一个循环中,遍历每个字
检查该字是否是一个整数
在向量中存储数值
最坏情况下的时间复杂度。 **Θ(N)**
平均情况下的时间复杂度。 **Θ(N)**
最佳情况下的时间复杂度。 **Θ(1)**
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main()
stringstream ss;
string str = " OpenGenus 11 22 234 test";
ss << str;
vector< int > intValues;
string temp;
int number;
while (!ss.eof()) {
ss >> temp;
if (stringstream(temp) >> number){
intValues.push_back(number);
for (int i=0; i<intValues.size(); i++){
cout<<intValues[i] << " ";
return 0;
可用于从用户输入的字符串中获取整数值。
当要存储的值的大小未知时,可以使用矢量。
你用什么命令将数值追加到一个向量中:
front()
push_back()
pop_back()
assign()
push_back()函数用于将元素从后面推入一个向量。
向量是静态的还是动态的?
取决于实现方式