我刚刚转移到C++,几个比较糊涂的问题,关于STL库中的类模版以及引用等等问题,200分大家请进来,up有分
我在linux下使用gcc编译,像一个文件
#include <Sring>
#include <Vector>
就可以像Java一样string str("adfdfd");或者string* str = new string("dsafa")建立对象实例,但是问题是,我定义一个比如
string foo(&string str);或者string* foo(string str)的函数,总是说parse错误,请问大家,如何在linux下使用string或者list等等类型作为函数返回值,参数等等,传递值,传递指针或者引用都可以
我在VC下可以象这样使用一个Vector等等类型
typedef vector<int> myvector;
不用初始化,就可以直接拿myvector过来用,比如myvector mv;
但是如果我vector ve;这样定义却不行
如果我想这样定义一个Vector的话vector vc(254);或者vector* vc = new Vector(254);也是错误的
假如我想在MFC中定义一个string或者vector作为函数的(引用,指针或者值)的参数或者返回值应该如何做呢,Linux下又是怎么做的呢
请教各位
ps:可能的话请linux gcc优先,windows的解决方案也非常欢迎,我急需要象java一样把一个装有多个string的vector对象引用返回,函数的参数是一个长的string引用
上面的苯问题请大家有什么感想都往上写,分不够再加
问题点数:0、回复次数:5Top
1 楼isis(isis)回复于 2003-09-03 04:47:41 得分 0
顺便请教,我使用的是KDE,创建的一个非Qr的项目,但是我想用到一些Qt的库,但是include的文件无法解析,请问如何设置环境变量Top
2 楼bbgbianbaogui()回复于 2003-09-03 08:38:17 得分 0
upTop
3 楼ydfok(发芽的石头)回复于 2003-09-03 09:07:27 得分 0
gzTop
4 楼jyfcsdn()回复于 2003-09-03 09:26:13 得分 0
string, vector 都属于名称空间 namespace std中
所以要这样用
#include <string>
#include <vector>
std::string foo(std::string& str);
std::string* foo(std::string str);
int main()
{
std::string str = "...";
std::string * str1 = new std::string;
}
或者
#include <string>
#include <vector>
using namespace std; /////////notice
string foo(string& str);
string* foo(string str);
int main()
{
string str = "...";
string * str1 = new std::string;
}
至于vector使用
由于vector是模板类
所以必须指定容器内元素类型
应该这样用 vector<int> vc; vector<char> vc;
Top
5 楼lkjmnb(深蓝)回复于 2003-09-03 17:50:08 得分 0
upTop



