所以我有这个代码:
#include <iostream>
#include <vector>
using namespace std;
vector <int> suma(vector <int> t, vector <int> m){
int i;
vector <int> sumat;
for(i=0; i<t.size();i++){
sumat[i]=t[i]+m[i];
}
return sumat;
}
int main(){
vector <int> a(4,0);
a[0]=5;
a[1]=5;
a[2]=3;
a[3]=0;
vector <int> b(4,0);
b[0]=5;
b[1]=5;
b[2]=3;
b[3]=0;
cout<< suma(a,b) <<endl;
}
这是我在最后一行得到的补偿错误:
[错误]不匹配运算符
那是为什么呢?
为什么不在suma函数中这样打印sumat的内容
void suma(vector <int>& t, vector <int>& m, vector<int>& output){
// Assuming that both vectors t and m are of the same size.
for(size_t i=0;i<t.size();i++){
output.push_back([i]+m[i]);
}
}
请注意,我将函数的返回值从vector改为void。然后在主函数中,可以这样调用函数。
vector<int> sumat;
suma(a, b, sumat);
然后,您可以继续打印sumat向量的输出,如下所示:
for(size_t i = 0; i < sumat.size(); ++i)
{
cout << sumat[i] << endl;
}
您应该将代码更改为:
#include <iostream>
#include <vector>
using namespace std;
vector<int> suma(vector<int> t, vector<int> m){
int i;
vector<int> sumat(4);
for(i=0; i<t.size();i++){
sumat[i]=t[i]+m[i];
}
return sumat;
}
int main(){
vector<int> a(4,0);
a[0]=5;
a[1]=5;
a[2]=3;
a[3]=0;
vector<int> b(4,0);
b[0]=5;
b[1]=5;
b[2]=3;
b[3]=0;
vector<int> res = suma(a,b);
for(size_t i = 0; i<res.size(); i++)
cout<<res[i]<<endl;
}
你的代码中有一些错误:(1)当你使用sumat[i]
时,你应该保留vectorsumat
的功能<代码>向量
(2)你不能直接cout
一个向量
对象,你可以为向量
对象写一个覆盖运算符,或者输出向量
的元素。
C不定义ostream运算符
您可以定义自己的
全局运算符重载方法有一个特定的调用约定,第一个参数是对运算符左侧对象的引用(例如
cout中的
cout
)
例如。:
ostream &operator << (ostream &out, const vector<int> &vec)
{
for (auto &&val : vec)
out << val << std::endl;
return out;
}
如果不能使用c 11,可以使用较旧样式的循环,如下所示:
ostream &operator << (ostream &out, const vector<int> &vec)
{
for (vector<int>::size_type i = 0; i < vec.size(); i++)
out << vec[i] << std::endl;
return out;
}
或使用迭代器的其他类似循环。
PS.无关注释-您需要在代码中初始化sumat的大小,或使用push\u back。目前它将崩溃。
我想要的 我在寻找在Activiti上下文达到等待状态之前回滚它的方法。例如,我有: 真是个问题: 我不想手动删除执行变量。我已经试过普通交易-没有结果。现在我想到了补偿事件。 问题: 补偿事件是回滚Activiti上下文还是应该在适当的CompensationserviceTask中手动执行?
在上一章,我们介绍了 Meteor 的一个新概念:内置方法。 Meteor 的内置方法是一种在服务器上执行一系列命令的结构化方法。在示例中,我们使用内置方法是为了确保新帖子是通过作者的姓名和 ID ,以及当前服务器时间去标记。 然而,如果 Meteor 用最基本的方式去执行内置方法,我们会注意到一些问题。想一想下面事件的序列(注:为演示方便,时间戳值是随机的生成的): +0ms: 用户单击提交按钮
给定一个9自由度的加速度计(加速度计、陀螺仪和磁强计),我想消除/补偿加速度计读数中重力的影响(加速度计可以自由旋转)。传感器以四元数表示方式给出相对于(磁)北、西和上参考坐标系的方向。 我找到这个了http://www.varesano.net/blog/fabio/simple-gravity-compensation-9-dom-imus但无法理解给定方程的基础。 我怎样才能实现上述信息?
在瞬时失效之后做一个尝试它常常有助于在再试一次之前等待一会。因为通常失败是有一些问题引起的它只能通过等待来解决这些问题,如果RetryCallback失败,RetryTemplate可以暂停执行取决于BackoffPolicy在适当的位置 public interface BackoffPolicy { BackOffContext start(RetryContext context);
矢量或者说向量,可以通过2~4个分量表示一个向量,比如通过vec3(1,0,0)表示三维空间中一个沿着x轴正方向的三维方向向量,如果你有高中数学的基础,应该对向量有一定的了解,对于三维坐标的相关几何运算也有一定的概念。 关键字 数据类型 vec2 二维向量,具有xy两个分量,分量是浮点数 vec3 三维向量 ,具有xyz三个分量,分量是浮点数 vec4 四维向量 ,具有xyzw四个分量,分量是浮点
Vector是由连续整数索引的值的集合。 使用Clojure中的矢量方法创建矢量。 例子 (Example) 以下是在Clojure中创建矢量的示例。 (ns clojure.examples.example (:require [clojure.set :as set]) (:gen-class)) (defn example [] (println (vector 1 2 3