原创作者: zjumty   阅读:2358次   评论:3条   更新时间:2011-05-26    
最近在学习c++,看thinking in c++,看到第二章。书上的一些代码看不懂,请各位指教。
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
int main() 
{
	vector<string> v;
	ifstream in("main.cpp");
	string line;
	while(getline(in,line)){
		v.push_back(line);
	}
	
	for(unsigned int i = 0; i < v.size(); i++){
		cout << v[i] << endl;
	}

	return 0;
}


问题一:v是怎么出来的?
在java中,定义一个变量分配空间,要用 Vector v = new Vector(); 先生成一个对象然后赋给v。
难道在c++中不用赋值? 声明一下就能用了?

问题二: ifstream in("main.cpp"); 是定义了一个ifstream类型的名叫in的变量吗?
在c++中用这样的语法定义变量:<type> <var_name>(xxx) ?
c++中好像也有用<type> <var_name> = new <type>来定义变量的方法。
这两种方法有什么区别呢?

问题三:我怎么才能知道getline是什么,endl是什么?,vector还有哪些函数?
我该去哪里找他们的文档?

评论 共 3 条 请登录后发表评论
3 楼 fanchangyong 2009-10-12 12:16
1.问题一:v是怎么出来的?
这样就是定义了一个vector<string>类型的变量(或对象)v.
2. ifstream in("main.cpp"); 是定义了一个ifstream类型的名叫in的变量吗?
是的,括号里的字符串是传给它的构造函数的参数.
3.问题三:我怎么才能知道getline是什么,endl是什么?,vector还有哪些函数?
你装一个msdn啊,都可以查到的.

C++也有用new的语法,这是内存分配的问题.
比如:A a;这样是在栈上分配一个对象的空间.
A* pa=new A;这样是在堆上分配一个空间,然后用pa指向它.
这个对象用完后,需要用delete pa;来释放内存.
2 楼 daikewei 2008-12-10 21:57
http://www.cppreference.com/wiki/
1 楼 daikewei 2008-12-10 21:56
问题一:
vector<string> v; 这是定义了一个类型为string的容器。
问题二:
去看看IO流就知道了。
问题三:
getline是读取一行,endl是换行,vecotr的函数你可以去查API。

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics