C++ vector 遇到的一些小问题

一、在考虑计算vector<int>中元素时需要将string转换成int:

C#中语法

string text;

int i = int.Parse(text);

虽说肯定不是这样,C++兼容C,像下面这样写还是会报错

#include<stdlib.h>//注意头文件



int i = int(text);

查了一下,发现下面这种写法ok = =

#include<stdlib.h>

//函数就省略了



/*C++中将string转换成int,首先需要转换成char*,然后再调用atoi方法,这是由于在C++中、string已经属于类,在C#中类似的是装箱拆箱操作(值类型和引用类型相互转换,会产生中间量temp)暂且这样理解吧,先做一下记录,防止忘了*/



string text;



int i = atoi(text.c_str());//c_str()表示返回一个C sytle的字符串

类似的还有string转float等

float f = atof(text.c_str());

 

二、关于cin

我的代码:

string text;//接受标准输入



vector<int> v_value;



cout << "请输入一组整数:(形如1 2 3 4 5 6。。。)" << endl;



//读入一组数到v_value

while(cin >> text)

{

    v_value.push_back(atoi(text.c_str()));

}

现在我想知道输入什么时候结束!

下面这解释的不错,引用一下

/*

cin是个对象,>>输入操作符返回流对象的引用,

cin >> x 返回istream&,cout << x返回ostream&



if可直接判断流,如if (cin)

while间接判断,如while (cin >> x)

若流被标记错误(读取失败)就返回false.

ctrl+z,F6可跳出循环,这代表eof(文件结束符)

*/

这就很好理解啦,我的while循环只需要在输完一行,在下一行ctrl+z或F6就可以跳出循环了。

其实关于标准IO,还是很有学问的,需要的时候仔细查阅参考书就ok了

你可能感兴趣的:(vector)