#include "stdafx.h" #include "vector" #include "string" #include "iostream" using namespace std; class A { public: string name; string word; }; class B { public: vector<vector<A>> send(vector<vector<A>> x); //测试如何把vector对象当左值 }; vector<vector<A>> send(vector<vector<A>> x) { return x; } int main(int argc, char* argv[]) { A a; B b; vector<A> m; vector<vector<A>> n,d; a.name = "tracy"; a.word = "just brillance"; m.push_back(a); m.clear(); n.push_back(m); d = b.send(n); //???如何用一个vector的vector对象n接收这个函数的返回值 cout<<d[0][0].name<<endl<<d[0][0].word<<endl; //??这样不行么 return 0; }
关于vector<vector<string>>作为返回类型的问题,
可以的,完全没有问题。你的程序主要的问题是:1.如果模版内部还有模版,则两个>>和<<一定要分开,否则会当成是移位运算符而出错。这是一个很容易犯的错误。所有类似vector<vector<A>> n,d;的语句统一改为vector< vector<A> > n,d;2.你在类外定义send函数的时候没有加作用域标识符。3.m.cl...
C++ vector<string> 输出问题
include <iostream>#include <vector>#include <string>\/\/加上这个头文件\/\/#pragma warning(disable: 4786)using namespace std;int main(){\/\/先声明一个vector变量vector<string> svec;svec.push_back("how ");svec.push_back("are ");svec.push_back("you");svec.push_back("?");for (v...
stl vector作为函数返回值不行??求解释原因,不是要规避方法
你的程序没有问题,这样写完全是对的,如果没猜错是你的编译器需要打补丁 ,如果是 vc6 ,那不仅要打补丁sp6,而且 vc6对模板支持本来就有bug, 赶紧换到 vs2010
c++ 中的vector<vector<string> > file 是怎么理解的!
vector<string> 这是一个类型 用这个类型再去实例化vector<> 类模板
c++函数怎么返回string数组
用vector<string>来返回吧,返回任何类型的数组 这种事情本身就不太好。\/\/这种方式不推荐,某些编译器不做编译优化,导致多一次vector的复制构造vector<string> getStrings() { vector<string> strings; strings.push_back("hello"); strings.push_back("world");}vector<string> strings = ...
关于vector<string*>的问题!!
你分析得很正确呀,因为ap地址是固定的,所以vector所有的元素都是指向ap,值自然也就一样了;而将vector<string*>改成vector<string>也不会起作用的,原因不在vector,而在ap,ap地址不变,那么下一次读取的内容永远会覆盖上一次读取的内容。解决方法可以是这样,读入字符后,创建一个新的string存储它...
为什么在C++中vector string对象不能直接输出,需要自己遍历,然后逐个...
一个简单且可扩展的 operator<< 重载 std::ostream& operator<<(std::ostream& o, std::vector<std::string> const& v){ for (std::vector<std::string>::iterator i=v.begin(), end=v.end(); i != end; ++i) o << *i << ' ';} ...
java Vector循环输出问题
mian ===》 main 循环越界。for(int i=0;i<=s.length;i++){===> for(int i=0;i<s.length;i++){ 字符串拼接语法错误。System.out.println(v.get(c)[0]"***"v.get(c)[1]);===> System.out.println(v.get(c)[0]+"***"+v.get(c)[1]);...
Vector<string> 如何输出
cout << pStrContent.c_str() << endl;这里的string是一个类,不是一个简单的字符串,需要取出里面的字符串进行输出。
假设iter为vector<string>::iterator类型的变量,iter++ ->empty()是...
先执行后缀++运算符,其实就是调用了一个运算符函数,这个函数返回一个临时对象(其值就是执行++操作之前的值),再用这个临时对象去调用empty()函数,所以效果相当于先调用函数再加加。