如何在 c++ 集中插入元素,直到按下 Enter 键
How to insert elements in a c++ set until enter is pressed?
例如:如果给出 1,5,88,99,7 作为输入,则在一个集合中插入 1 5 88 99 7,然后按 Enter 键。我的代码:
#include <bits/stdc++.h>
using namespace std;
set <char> num;
set <char> ::iterator i;
int main()
{
int a;
while(a=getchar())
{
if(a!='n')
{
if(a!=',')
num.insert(a);
}
else
break;
}
for(i=num.begin(); i!=num.end(); i++)
cout<<*i<<endl;
}
我得到的输出:15789
#include <set>
#include <string>
#include <sstream>
using namespace std;
int main() {
// cin >> s;
string s = "5,2,3,4,1",t = "";
stringstream ss(s);
set<int> s_;
while( getline(ss,t,',') )
s_.insert(stoi(t));
for(auto i : s_)
cout << i << " ";
}
输出: 1 2 3 4 5
1(为了匹配修改后的问题(读取任何长度的整数(字符,意味着您需要查看每个字符并查看它是否是数字。 如果是,则需要根据收到的每个附加数字保留一个运行值。
2(如果要保存实际的整数值,您的集合必须是int,而不是char。
#include <iostream>
#include <set>
using namespace std;
set <int> num;
set <int> ::iterator i;
int main()
{
int a;
int full_num=0;
while(a=getchar())
{
if (isdigit(a))
{
full_num = full_num*10 + (a - '0');
}
else if (a==',' || a=='n')
{
num.insert(full_num);
full_num = 0;
if (a=='n') break;
}
}
for(i=num.begin(); i!=num.end(); i++)
cout<<*i<<endl;
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将元素添加到数组的线程安全函数?
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 我想访问std::unique_ptr中的一个特定元素
- 如何通过 getter 函数删除矢量的元素?
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 从控制台中删除最后打印的元素
- 如何在 c++ 集中插入元素,直到按下 Enter 键