-
2021-10-16 16:57:29
String str = sc.next().toString(); String[] arr = str.split(","); int[] b = new int[arr.length]; for(int j = 0; j<b.length;j++) { b[j] = Integer.parseInt(arr[j]); }
更多相关内容 -
C++输入未知长度的数组
2019-06-23 18:33:07静态数组int array[10],它的长度必须是个常数才可以定义。如果知道数组长度n,可以先cin>>n;然后用动态数组int* array = new int[n]。但是如果不知道数组长度,该怎么定义呢? 经过查找资料,终于找到了一种...注意:该作者博客已迁移至https://buxianshan.xyz
假如要输入一组数字进行排序,但是不知道有多少个数字
静态数组int array[10],它的长度必须是个常数才可以定义。如果知道数组长度n,可以先cin>>n;然后用动态数组int* array = new int[n]。但是如果不知道数组长度,该怎么定义呢?
经过查找资料,终于找到了一种解决方法。使用STL中的vector。
STL
STL是Standard Template Library的简称,中文名标准模板库。根本上说,STL是一些“容器”的集合,这些“容器”有 list, vector, set, map 等。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL是C++的一部分,因此不用安装额外的库文件。
在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>。vector
vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。
简单用法:
定义一个vector,元素为 int 型的容器array,可以简单理解为一个整型数组。vector<int> array;
在它末尾添加一个数字
array.push_back(number);
返回数组长度
array.size();
所以输入未知长度的数组可以这样写:
#include<iostream> #include<vector>//引入vector头文件 using namespace std; int main() { vector<int> array;//定义一个vector数组array int number; while (1) { cin >> number; array.push_back(number);//每输入一个数字就把它添加到数组的最后 if (cin.get() == '\n')//如果是回车符则跳出循环 break; } int len = array.size();//返回数组长度为len //下面遍历一遍数组看看对不对 for (int i = 0; i < len; i++) { cout << array[i] << endl; } return 0; }
测试截图:
已经完成了输入和保存数组
STL的<algorithm>库中也提供了很多排序算法,遍历vector也可以使用迭代器。总之STL集成了很多优秀的算法,熟悉使用可以提高开发效率。还有很多需要学习的东西。
参考
- https://www.cnblogs.com/SarahZhang0104/p/5749680.html
- https://blog.csdn.net/lizhentao0707/article/details/82224807
- https://www.cnblogs.com/aiguona/p/7228364.html
- https://baike.baidu.com/item/STL/70103?fr=aladdin
-
C语言输入未知长度字符数组
2019-02-10 15:31:03C语言输入未知长度字符数组 问题描述:在最基础的C语言中使用scanf()函数简单输入一行长串字符数组,以回车结束。储存每一个字符以参与后面的运算,或者将他们打印下来。 细节问题 回车(enter)结束——指的是以...重新捡起学习C语言系列
C语言输入未知长度字符数组
问题描述:在最基础的C语言中使用scanf()函数简单输入一行长串字符数组,以回车结束。储存每一个字符以参与后面的运算,或者将他们打印下来。
细节问题
- 回车(enter)结束——指的是以字符’\n’结束;
- 输入采用%c而不是%s,因为后面会运用他们计算。
用到的语法
for
:
while
:
do..while
:
if...break
:代码
do...while语句
.#include <stdio.h> int main() { char array_num[100] ; int i = 0, length; do { scanf("%c", &array_num[i]); i++; } while (array_num[i - 1] != '\n'); length = i-1; for (i = 0; i < length; i++) printf("%c", array_num[i]); getchar();//VS2017中特殊设置,解决CMD窗口闪退问题 return 0; }
-
如何输入未确定长度的数组
2021-10-04 21:11:44如何输入未确定长度的数组 今天用许久未碰的C语言写数据结构作业时遇到了这个问题,在不确定要输入的整型数组长度时我们应该如何输入,并用回车结束输入?如:LA=(3,5,8,11),LB=(2,6,8,9,11,15,20) 在这给出两...如何输入未确定长度的数组
今天用许久未碰的C语言写数据结构作业时遇到了这个问题,在不确定要输入的整型数组长度时我们应该如何输入,并用回车结束输入?如:LA=(3,5,8,11),LB=(2,6,8,9,11,15,20)
在这给出两种解决办法int count=0; int a[1024]={0}; while(1) { scanf("%d",&a[count]);/*这里其实有个bug,如果你输入的是一个空 数组,即直接回车的话程序会卡在这里,因为scanf需要接收到一个整型数据*/ count++; if(getchar() == '\n')//遇到换行时跳出循环 { break; } } for(temp=0;temp<count;temp++)//打印结果 { printf("%d ",a[temp]); } printf("\n%d",count);
如果你不希望在while循环中再进行判断,那么可以使用do while
int count=0;//count用于计数 int a[1024]={0}; do//注意,不能直接使用while(getchar!='\n),而应该使用do while, //因为前者会导致第一个数据丢失(程序运行先进入判断条件第一个数字被getchar拿走) { scanf("%d",&a[count]); count++; }while(getchar()!='\n');//遇到换行时结束循环 for(temp=0;temp<count;temp++)//打印结果 { printf("%d ",a[temp]); } printf("\n%d",count);
以上也只是我临时查阅资料,经过调试之后总结出来的,限于知识水平难免有错漏之处,请多指正包涵。
-
C++输入获取未知长度的行输入数组 与 输出控制
2017-09-01 21:35:51C++输入获取未知长度的行输入数组 与 输出控制 -
字符串输入未知长度数组的处理(记拼多多血与泪的故事)
2019-04-04 10:11:47//截取字符串长度 pos1 = pos2 + c.size();//下一次要查找的位置 pos2 = s.find(c,pos1);//从字符串s的下标5开始,查找字符串b 返回b在s中的下标 } if (pos1 != s.length()) { v.push_back(s.substr(pos1));//... -
C语言:输入一个长度未定的整形数组[C_001]
2022-03-31 08:41:47C语言中输入长度未定的整型数组 -
java – 大小未知的数组
2021-03-08 01:38:52我有一个小问题,关于如何创建未知大小的数组.我想最好的方法是使用java.util.ArrayList;我的问题是,有什么区别:ArrayList client_Catalog = new ArrayList<>();和List<> list = new ArrayList<>... -
java编程输入一个长度未知的int数组
2019-02-13 19:32:58java编程输入一个长度未知的int数组 思路: java中可以直接输入字符串数组,但是输入int[] 数组时需要事先定义长度,但有些题目中的长度是可变的,不能事先固定数组长度。首先输入字符串的数组,中间用空格分隔,... -
C++读取一串未知长度的数组并保存
2019-09-09 21:11:44例如做题时输入一串数组,以空格隔开,但是不知道数组的长度,就可以用下面这段代码来读取,最后保存进 vector 里面。 #include<iostream> #include<vector> using namaspce std; int main() { char c... -
C语言建立长度未知的动态数组(动态分配内存)
2021-02-12 21:15:07一般题目要输入一个长度为n的数组(n需要输入),因为其长度未知,我们常规方法是建立一个足够长的数组,如a[100],a[10000000]等。 这样处理的缺点是会消耗大量不必要的内存。 因此我们有必要引入动态分配内存的介绍... -
不确定长度的数组输入
2021-05-17 21:00:23不确定长度的数组输入 不知道要输入几个数的时候输入,整体用字符串输入,再用空格给它分开成几部分即可。 注意String s=reader.nextLine();不能写成reader.next(); 代码: import java.util.Scanner; public class ... -
Java数组元素查找 接收并打印一个未知长度的数组
2021-03-09 21:25:41+++++++++++ 可以实现接收并打印一个未知长度的数组的效果. (2)要查询的元素通过键盘录入的方式确定 (3)定义一个查找数组元素第一次出现位置的方法(注,要查找的元素就是键盘录入的数据), 如果没有找到返回-1 分析: 1... -
往已知长度数组中输入未知个数的数据
2019-11-02 18:16:08#include<iostream> #include<iomanip> using namespace std; int main() { int a[20],i; for(i=0;;i++){ cin>>a[i]; if(getchar()=='\n') //遇回车结束 break; ... -
C++输入未知长度字符串存入数组
2020-06-04 15:37:45记录C++学习过程的问题,方便以后自己查看 int main() { string str; char temp; while((temp=cin.get())!...i++) //将字符串保回存到字符数组中答 { dest[i]=str[i]; cout<<dest[i]; } delete -
C++,如何将未知长度的string输入数组
2016-04-02 04:34:32另外,关于将未知长度的字符串输入数组,还有什么好办法吗? ``` int main() { int time; scanf("%d", &time); int count=0; while(count ) { string str; char temp; int i; while((temp=cin.get())!=... -
C++ 数组长度未知情况使用vector
2019-12-12 14:52:38http://vivi.dyndns.org/tech/cpp/vector.html 长度未知 时使用vector -
JAVA中输入不知道长度的数组
2018-08-12 18:09:02JAVA中输入不知道长度的数组 一、整型数组 例如 input: 3// 数组长度n 1 2 3//数组,注意数组是无法直接输出的,要转化为字符串才能输出。 方法一: import java.util.Arrays; import java.util.Scanner; ... -
c++ 如何定义未知元素个数的数组
2021-05-23 02:04:09如果数组的元素个数不知道的话,只能通过动态内存分配了,静态内存分配是没有办法实现的,因为静态内存分配在定义数组的时候必须指定数组的大小为一个常量或者常数,例如:int array[10];或者const int Size=10;int ... -
java如何创建不定长的数组?
2021-04-08 09:03:49JAVA没法定义不定长的数组,要么声明为NULL,要么指定其长度。如果需要不定长的集合,我们可以采用ArrayList来解决。1、首先声明一个集合listArrayList list = new ArrayList();2、然后就可以往里面添加数据了list.... -
如何输入未知长度的int型数组
2013-08-23 08:49:00今天在qq群里面看到一个人问如何输入一个未知长度的int型数组,然后按回车结束输入。 我想了一个这样的方法,主要实现: 1 while(scanf("%d",&b)) 2 { 3 array[i++] = b; 4 if ('\n' == getchar()) 5 { ... -
python – 从具有未知维数的numpy数组中提取超立方体块
2021-04-27 08:03:11我有一些python代码,目前使用二维数组进行硬连接,如下所示:import numpy as npdata = np.random.rand(5, 5)width = 3for y in range(0, data.shape[1] - W + 1):for x in range(0, data.shape[0] - W + 1):block = ... -
C语言键盘输入单字符,连续字符,带空格字符,未知长度数组等的写法
2020-12-22 10:11:481. 从键盘输入单字符(不管输入多少个字符,只接受第一个字符) #include <stdio.h> int main() { printf("请输入一个字符"); char s; s = getchar(); printf("%s\n", &s); return 0; } 运行结果... -
输入一个未知长度的int数组,并计算他们的和
2020-03-17 18:51:49public static void main(String[] args) { System.out.println("请输入数组,用逗号隔开"); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); String[] Arrays = str.split... -
c++ 输入不定长的字符数组
2020-04-19 14:54:14OJ题目中总会出现给定一个字符串,删除其中某些字符的题目,但输入不会给字符串的长度。 网上有的方法是先定义一个超大的数组,然后用这个大数组来储存数据,但我不喜欢这个方法,不但浪费空间,如果题目给定字符串... -
MATLAB中未知长度的矩阵?
2021-04-18 09:31:17数组必须在最后一个维度上增长(在2D矩阵的情况下为列)。这就是为什么在没有预分配的情况下追加原先预期的行仍然太慢的原因。这是上面提出的解决方案可以真正帮助的地方(通过批量扩展阵列)。 请参阅此处获取完整... -
关于如何定义一个未知大小的数组
2018-10-27 00:09:00变长一维数组这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做://文件名: array01.cpp#include<iostream>using ... -
在JAVA中如何定义一个不定长的数组?
2021-02-12 22:46:40在Applet 中有一块画布(Canvas) 和一个(Panel), 而Panel 中放着用户要输入的信息,根据这些信息把参数传递到canvas 中,这时在Java 中用一个接口(Interface), 而在接口中需用一个Vector 去传递这些参数。...