Tag: 向量

当它指向vector的最后一个元素时,如果我将迭代器增加2,该怎么办?

在这个问题中 ,如何通过2个元素来调整迭代器到STL容器,提供了两种不同的方法: 要么使用算术运算符的forms – + = 2或++两次 或使用std :: advance() 当迭代器指向STL容器的最后一个元素或更高版本时,我已经用VC ++ 7testing了它们的边界情况: vector<int> vec; vec.push_back( 1 ); vec.push_back( 2 ); vector<int>::iterator it = vec.begin(); advance( it, 2 ); bool isAtEnd = it == vec.end(); // true it++; // or advance( it, 1 ); – doesn't matter isAtEnd = it == vec.end(); //false it = […]

在Python中减去2个列表

现在我有vector3值表示为列表。 有没有办法减去2这些像vector3值,如 [2,2,2] – [1,1,1] = [1,1,1] 我应该使用元组吗? 如果它们中没有一个在这些types上定义这些操作数,我可以定义它吗? 如果不是,我应该创build一个新的vector3类吗?

结构向量的初始化

我想知道如何使用push_back方法将值添加到结构向量中 struct subject { string name; int marks; int credits; }; vector<subject> sub; 那么现在如何添加元素呢? 我有函数初始化string名称(主题名称) void setName(string s1, string s2, …… string s6) { // how can i set name too sub[0].name= "english", sub[1].name = "math" etc sub[0].name = s1 // gives segmentation fault; so how do I use push_back method? sub.name.push_back(s1); sub.name.push_back(s2); sub.name.push_back(s3); sub.name.push_back(s4); […]

按位置从data.table中提取一列作为vector

如何从data.table中提取一列作为vector的位置? 下面是我尝试过的一些代码片段: DT<-data.table(x=c(1,2),y=c(3,4),z=c(5,6)) DT # xyz #1: 1 3 5 #2: 2 4 6 我想要使​​用列位置得到这个输出 DT$y #[1] 3 4 is.vector(DT$y) #[1] TRUE 用列位置获得这个输出的其他方法 DT[,y] #[1] 3 4 is.vector(DT[,y]) #[1] TRUE 这不给一个向量 DT[,2,with=FALSE] # y #1: 3 #2: 4 is.vector(DT[,2,with=FALSE]) #[1] FALSE 这两个不起作用: DT$noquote(names(DT)[2]) # Doesn't work #Error: attempt to apply non-function DT[,noquote(names(DT)[2])] # Doesn't work […]

C#相当于C ++vector,具有连续内存?

C ++相当于C ++vector的是什么? 我正在寻找这个function: 要有一个连续存储的内存dynamic数组,没有访问与标准数组的性能损失。 我正在search,他们说.NET equivalent to the vector in C++ is the ArrayList ,所以: ArrayList是否具有连续的内存function?

QVector与QList

我有一个整数列表,我需要迭代,但一个数组是不够的。 向量和列表之间有什么区别,在selecttypes之前有什么我需要知道的? 只是要清楚,我已经阅读了QT文档,但这是我所知道的程度: QList,QLinkedList和QVector提供了类似的function。 这里有一个概述: 对于大多数目的,QList是正确的类。 它的基于索引的API比QLinkedList的基于迭代器的API更方便,并且由于它将项目存储在内存中的方式通常比QVector更快。 它也扩展到更less的代码在您的可执行文件。 如果你需要一个真正的链表,保证在列表中间有恒定的时间插入,迭代器可以保证项目而不是索引,可以使用QLinkedList。 如果你想要项目占用相邻的内存位置,使用QVector。

C ++中向量的初始容量

什么是使用默认构造函数创build的std::vector的capacity() ? 我知道size()是零。 我们能否声明一个默认构造的向量不会调用堆内存分配? 这样就可以用一个分配来创build一个任意保留的数组,比如std::vector<int> iv; iv.reserve(2345); std::vector<int> iv; iv.reserve(2345); 。 假设出于某种原因,我不想在2345年开始size() 。 例如,在Linux(g ++ 4.4.5,kernel 2.6.32 amd64) #include <iostream> #include <vector> int main() { using namespace std; cout << vector<int>().capacity() << "," << vector<int>(10).capacity() << endl; return 0; } 打印0,10 。 这是一个规则,还是STL供应商的依赖?

将数组转换为向量最简单的方法是什么?

将数组转换为向量最简单的方法是什么? void test(vector<int> _array) { … } int x[3]={1, 2, 3}; test(x); // Syntax error. 我想以最简单的方式将int数组中的x转换为向量。

如何将一个向量传递给一个函数?

我试图发送一个向量作为参数的函数,我不知道如何使其工作。 尝试了一堆不同的方式,但他们都给出了不同的错误信息。 我只包含部分代码,因为只有这个部分不起作用。 (vector“随机”填充0到200之间的随机值,但sorting值) 更新了代码: #include <iostream> #include <ctime> #include <algorithm> #include <vector> using namespace std; int binarySearch(int first, int last, int search4, vector<int>& random); int main() { vector<int> random(100); int search4, found; int first = 0; int last = 99; found = binarySearch(first, last, search4, random); system("pause"); return(0); } int binarySearch(int first, int last, […]

testing单个向量的所有元素之间的相等性

我试图testingvector的所有元素是否相等。 我提出的解决scheme似乎有些迂回,都涉及检查length() 。 x <- c(1, 2, 3, 4, 5, 6, 1) # FALSE y <- rep(2, times = 7) # TRUE unique() : length(unique(x)) == 1 length(unique(y)) == 1 用rle() : length(rle(x)$values) == 1 length(rle(y)$values) == 1 一个解决scheme可以让我包含一个评估元素之间“平等”的容忍值,是避免FAQ 7.31问题的理想之选。 是否有一个我完全忽略的testingtypes的内置函数? identical()和all.equal()比较两个R对象,所以他们不会在这里工作。 编辑1 以下是一些基准testing结果。 使用代码: library(rbenchmark) John <- function() all( abs(x – mean(x)) < .Machine$double.eps […]