c++ 中vector怎么输出 结构体数据

时间:2021-02-13 04:16:23
#include <iostream>  
#include <vector>

using namespace std;

typedef struct
{
string str;
int inode;
}StrId; 

int main()
{
vector<StrId> t;
StrId str1;
str1.str = "This is a Test!";
str1.inode = 1;
t.push_back(str1);

for(vector<StrId>::iterator j=t.begin();j!=t.end();j++)
cout<< (*j).str<< " " << (*j).inode<<endl;

return 0;
}

D:\profile\CStud\CStud.cpp(1172) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable conversio
这个程序cout<< (*j).str<< " " << (*j).inode<<endl;的这句话怎么写的

10 个解决方案

#1



cout<< (*j).str.c_str()<< " " << (*j).inode<<endl;

#2



// 或者包含 #include <string>

#3


包含 #include <string>   后面怎么该啊

#4


包含 #include <string>   后面怎么该啊

#5


我在上面,不都给你贴出两种方法了。

#6


引用 2 楼 lile1234_show 的回复:
C/C++ code?1// 或者包含 #include <string>


引用 4 楼 andyzt406 的回复:
包含 #include <string>   后面怎么该啊

就可以直接编译运行了呗!
我用DEVC++的时候,不包含也能运行!

#7


呵呵,多谢啊·!

#8


呵呵,多谢啊·!

#9


按照楼上说的的改,已经可以运行了,但是可以再改进一下。

#include<iostream>
#include<string>
#include <vector>

using namespace std;

typedef struct
{
string str;
int inode;
}StrId; 

int main()

vector<StrId> t;
StrId str1;
str1.str = "This is a Test!";
str1.inode = 1;
t.push_back(str1);

for(vector<StrId>::iterator j=t.begin();j!=t.end();j++)
cout<< j->str<< " " << j->inode<<endl; //由于迭代器j是一个指针,可以直接使用->运算符来代替(*j).

system("pause");
return 0;
}

#10


学习中 c++ 中vector怎么输出 结构体数据

#1



cout<< (*j).str.c_str()<< " " << (*j).inode<<endl;

#2



// 或者包含 #include <string>

#3


包含 #include <string>   后面怎么该啊

#4


包含 #include <string>   后面怎么该啊

#5


我在上面,不都给你贴出两种方法了。

#6


引用 2 楼 lile1234_show 的回复:
C/C++ code?1// 或者包含 #include <string>


引用 4 楼 andyzt406 的回复:
包含 #include <string>   后面怎么该啊

就可以直接编译运行了呗!
我用DEVC++的时候,不包含也能运行!

#7


呵呵,多谢啊·!

#8


呵呵,多谢啊·!

#9


按照楼上说的的改,已经可以运行了,但是可以再改进一下。

#include<iostream>
#include<string>
#include <vector>

using namespace std;

typedef struct
{
string str;
int inode;
}StrId; 

int main()

vector<StrId> t;
StrId str1;
str1.str = "This is a Test!";
str1.inode = 1;
t.push_back(str1);

for(vector<StrId>::iterator j=t.begin();j!=t.end();j++)
cout<< j->str<< " " << j->inode<<endl; //由于迭代器j是一个指针,可以直接使用->运算符来代替(*j).

system("pause");
return 0;
}

#10


学习中 c++ 中vector怎么输出 结构体数据