原创作者: zjumty
阅读:2358次
评论:3条
更新时间:2011-05-26
最近在学习c++,看thinking in c++,看到第二章。书上的一些代码看不懂,请各位指教。
问题一: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还有哪些函数?
我该去哪里找他们的文档?
#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 楼 fanchangyong 2009-10-12 12:16
这样就是定义了一个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
1 楼 daikewei 2008-12-10 21:56
vector<string> v; 这是定义了一个类型为string的容器。
问题二:
去看看IO流就知道了。
问题三:
getline是读取一行,endl是换行,vecotr的函数你可以去查API。