但是,迭代适用于char类型的向量
#include<iostream>
#include<list>
#include<vector>
#include<stdio.h>
using namespace std;
struct traits
{
int x;
bool visit;
std::list<int> friends;
};
int main()
{
cout << "Enter the number of employees: " << endl;
int noOfEmployees, noOfFriends;
cin>>noOfEmployees;
std::vector<traits> employees;
int i = 0; int j;
while(noOfEmployees--){
traits v;
v.x = i;
cout << "Enter the no of friends: " << endl;
cin >> noOfFriends;
while(noOfFriends--){
cin>>j;
v.friends.push_back(j);
}
v.visit = false;
employees.push_back(v);
}
std::vector<char> path;
path.push_back('a');
path.push_back('l');
path.push_back('i');
path.push_back('a');
for (std::vector<char>::const_iterator i = path.begin(); i != path.end(); ++i){
std::cout << *i << ' ';
}
for(std::vector<traits>::iterator v = employees.begin(); v != employees.end(); ++v){
std::cout<<*v<<endl;
}
}
我看到的答案很少,但我想在没有操作符重载的情况下做到这一点,什么是正确的或更多的C++-NIC方式?
您得到的错误是告诉您ostream操作符没有应用于trait
类型对象的规则。做到这一点的最“C++NIC”方法是重载<<
运算符,但您已经说过您不想这么做。
给定这个约束,您可以将traits
项转换为ostream操作符支持的内容。一种合理的方法是使用命名空间级别的非成员函数
std::string to_string(const traits& t) {
/// Code to generate a string representation of your traits object
}
for (const auto emp& : employees){
std::cout<< to_string(emp) << ' ';
}
如果我在生产中看到这样的代码,我会认为作者有理由不使用更规范的运算符重载,如果他们不使用,我会感到失望。
在C++中,函数的签名部分取决于它是否为常量。这意味着一个类可以有两个具有相同签名的成员函数,只是一个是const而另一个不是。如果您有一个这样的类,那么编译器将根据您调用它的对象来决定调用哪个函数:如果它是类的常量实例,则调用函数的常量版本;如果对象不是常量,将调用其他版本。 在什么情况下,您可能希望利用此功能?
我试图创建一个图,它将有V个顶点。我正在使用向量的向量来表示图(作为邻接列表)。我的图中的节点是从0到V-1的编号,所以adj向量的索引代表了节点的数量。除非我搞错了,adj[u]代表一个向量,所以我应该可以使用adj[u].push_back(v)将顶点v推入顶点u的邻接列表中。所以在我的例子中,adj[4]应该得到与节点4相邻的顶点所在的向量,而.push_back(1) 这不会发生的。我想这
我是C语言的新手,正在尝试根据另一个向量中的值对向量进行排序。我试图通过创建结构向量并使用STL对结构向量进行排序来实现这一点。结构有两个数据项,一个是CustomType,另一个是int。我希望按int字段的降序排序,因此包含一个布尔运算符重载,以便能够使用STL排序(算法)。 在函数中使用对CustomType向量和初始未初始化的int向量的引用构造结构,并将它们组合成结构向量。int的值是通
完整代码如下所示: 在以下部分中 如果返回类型为ostream,则会显示一条红线。我不确定返回类型与ostream有什么区别 *作为参考,我忘了返回操作系统,所以我编辑了这篇文章
下面是我接手的一个项目,我想安装一个三方库才发现没有package.json,我装上以后node_modules会更新,现在的这4个依赖都整没了,之前没有发现这个问题,这种结构为什么没有package.json。我想用三方库怎么办?
我正在尝试为重定向绑定创建SAML AuthnRequest。 这是我的(匿名)授权请求: 我有一个中继状态: SigAlg是http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 我对请求进行放气,然后进行base64编码,然后进行URL编码。(缩小后的base64编码结果在SAMLTool解码器中检出。) 用于创建签名的结果字符串如下所示: 我尝试使