如何将字符串的元素放入向量
How to put an element of a string to a vector?
我想将字符串的特定元素放入vector<string>
。
为了更好地解释我打算做什么:
string str;
vector<string> in;
cin >> str; // input: abc
for(int i = 0;i < str.length();i++) {
in.push_back(&str[i]);
}
现在我希望vector<string> in
的第一个元素是"a"(in[0] = "a")
,第二个元素是b等。是否有可能这样做,因为当我打印矢量时,它给了我首先它有abc
然后bc
,最后只有c
?
std::string
有一个构造函数,该构造函数采用整数计数和单个char
来实例化具有相同值n
元素的字符串。您可以使用它以及std::strings
很像char
容器的事实:
for (auto c : str)
in.emplace_back(1ul, c);
或者,您可以将单个字符存储在向量中,而不是std::string
:
std::vector<char> in(str.begin(), str.end());
要么使用
std::vector<char>
,要么使用 substr
。
示例 1:
#include <string>
#include <iostream>
#include <vector>
int main()
{
std::string str;
std::vector<char> in;
std::cin >> str; // input: abc
for (std::string::size_type i = 0; i < str.length(); i++) {
in.push_back(str[i]);
}
}
或者更简单的变体:
int main()
{
std::string str;
std::cin >> str; // input: abc
std::vector<char> in(str.begin(), str.end());
}
示例 2:
#include <string>
#include <iostream>
#include <vector>
int main()
{
std::string str;
std::vector<std::string> in;
std::cin >> str; // input: abc
for (std::string::size_type i = 0; i < str.length(); i++) {
in.push_back(str.substr(i, 1));
}
}
相关文章:
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 在 C++ 中输出枚举类类型的向量元素
- 用向量的向量元素初始化向量的空向量
- 为什么不允许使用可变长度数组作为向量元素?
- 在函数中传递向量元素
- 使用 Rcpp 加速替换迭代算法中的列表和向量元素是否合法?
- 返回向量元素的 l 值的正确方法是什么?
- 当向量增长时,指向向量元素的C++指针是否无效
- 如何在C++中从一个向量元素减去std::unorderede_map向量元素并更新它
- C++:向量元素赋值导致访问冲突
- 将向量元素与字符串元素进行比较,而不初始化向量
- 从2D矢量中找出最小尺寸的向量元素的更好方法
- 当我尝试将一个向量元素的值分配给另一个向量元素时,为什么我的应用程序会崩溃
- 使用递归C++向量元素的总和
- 如何查找为数组中的最低值编制索引的向量元素
- 限制指针访问STL ::向量元素
- 访问索引指向向量元素时的seg故障 - 做错了什么
- 如何使用指针访问向量元素的各个元素
- 向量元素数据损坏了Find()操作
- 将字符值分配给向量元素.C