我们何时应该使用向量以及何时使用普通数组.在我的一个代码中,我发现了一个奇怪的问题.
class TwoTrains
{
public:
int pass(int t1, int t2, vector <int>);
};
int TwoTrains::pass(int t1, int t2, vector <int> times)
{
int size_of_array=(int)times.size();
for(int i=0;i<size_of_array;i++)
{
cout<<times[i]<<endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这编译,但当我使用它时,它给出了一个错误.为什么 -
for(int i=0; i< times.size();i++)
Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习R,我的任务是创建一个具有正态分布的10000个值的向量,mean = 0并且sd = 100.我做了什么.
x <- rnorm(10000, mean = 0, sd = 100)
Run Code Online (Sandbox Code Playgroud)
但现在我被要求values between 500 and 700在该向量中引入1000个随机位置.
谁能帮我?
如果我有一个vector<pair<int,int> >数据类型,那么通过该对的第一个元素对它进行排序的可接受方式是什么,然后如果第一个是相等的则按秒进行排序?例如,可能是(1,10),(3,3),(7,13),(7,16),(8,1),(8,2),(15,2)等.
我写了自己的动态数组.它不完整,我已经把它写成了一种做法.但是当我完成add函数时,我想测试我自己的动态数组类的性能,我看到了一些奇怪的结果.我的动态数组比stl的向量快得多.它快了7倍!
这是我的代码:
#include<iostream>
#include<vector>
#include<Windows.h>
using namespace std;
template<class T>
class DynArray
{
public:
DynArray()
{
arr = new T[2];
capacity = 2;
size = 0;
}
void Add(T value)
{
if(size < capacity)
{
arr[size++] = value;
}
else
{
T* tempArr = arr;
arr = new T[capacity*2];
memcpy(arr,tempArr,capacity*sizeof(T));
capacity = capacity*2;
delete[] tempArr;
arr[size++] = value;
}
}
int GetCapacity()
{
return capacity;
}
T operator [] (int index)
{
return arr[index];
}
~DynArray()
{
delete[] arr;
} …Run Code Online (Sandbox Code Playgroud) 我在运行良好的代码块上运行此程序,但在在线判断中,它为输入相同的输入提供运行时错误.我无法弄清楚这个错误的原因是什么.
vector<int> twoSum(vector<int> &numbers, int target)
{
vector<int> c ;
sort(numbers.begin(),numbers.end()-1);
vector<int>::iterator i = numbers.begin();
vector<int>::iterator j = numbers.end()-1;
while(i<=j)
{
int sum = *i + *j;
if(sum==target)
{ c.push_back(i-numbers.begin());
c.push_back(j-numbers.begin());
//cout<<*i<<" "<<*j<<endl;
break;
}
else if(sum<target) i++;
else j--;
}
return c;
}
Run Code Online (Sandbox Code Playgroud) 这个接受的答案陈述以下代码:
std::find(vector.begin(), vector.end(), item)!=vector.end()
Run Code Online (Sandbox Code Playgroud)
我理解的第一部分,我们将在向量的开始和结束之间找到项目.但为什么呢.类似于:"如果向量的末尾不等于找到的东西"?该代码应该在声明中吗?!=vector.end()if
让我说我有
std::vector<std::tuple<string ,int ,int>> tupleVector;
tupleVector.push_back(std::tuple<string ,int ,int>("Joe", 2, 3));
tupleVector.push_back(std::tuple<string ,int ,int>("Bob", 4, 5));
Run Code Online (Sandbox Code Playgroud)
如何迭代向量以打印包含元组的此向量的所有值?
我有这个代码:
class Grid {
public:
vector<vector<int> > grid;
int width;
int height;
Grid (int width, int height) width(width), height(height) {
...
}
};
Run Code Online (Sandbox Code Playgroud)
它使一个类称为Grid整数的2D数组.然而问题是,目前它只能是整数,但我想要它,所以它有点像std::vector你可以使用<>括号选择它将存储的类型的类.我的问题是,如何在我的班级中使用这些来替换所有当前的ints与任何其他类.
此外,你可能会说要查找它,但我尝试了,我找不到任何东西,可能是因为我不知道要搜索什么,所以如果有人能给我一个关于这甚至被称为什么的想法那么这将是有帮助的太.
我有一个矢量.我想将它与聚合物进行比较,看看它们是否相等.例如
vector<int> v{0, 1, 2};
bool b = equal(v, {0, 1, 2}); // how to write a method to implement it???
Run Code Online (Sandbox Code Playgroud) 当我尝试编译类似于以下内容的东西时,我收到标题中提到的错误消息.
class Object{
public:
Object(){
//Something
}
void x(){
//Something
}
}
void function(std::vector<Object>* things){
int someNumber;
//Some algorithm to get the value of someNumber.
things->resize(someNumber);
for(int i=0;i<someNumber;i++){
things[i].x();
}
}
int main(){
vector<Object> things;
function(&things);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
什么可能导致麻烦?