标签: vector

如何一次将多个int传递到向量中?

目前我必须vector.push_back()多次使用.

我目前使用的代码是

  std::vector<int> TestVector;
  TestVector.push_back(2);
  TestVector.push_back(5);
  TestVector.push_back(8);
  TestVector.push_back(11);
  TestVector.push_back(14);
Run Code Online (Sandbox Code Playgroud)

有没有办法只使用vector.push_back()一次,只是将多个值传递给向量?

c++ vector push-back c++11

50
推荐指数
5
解决办法
8万
查看次数

C++中的vector <int> :: size_type

这个C++语句是什么意思?

vector<int>::size_type x;
Run Code Online (Sandbox Code Playgroud)

而且,范围运算符::在这里的用途是什么?换句话说,我们如何用英语阅读这个陈述?

例如,对于X::x(){...}我们说x()member functionclass X.

c++ vector size-type

49
推荐指数
3
解决办法
5万
查看次数

std :: back_inserter比std :: inserter有什么好处?

据我所知,任何地方都std::back_inserter可以在STL算法中运行,你可以传递一个std::inserter构造.end()而不是:

std::copy(l.begin(), l.end(), std::back_inserter(dest_list));
std::copy(l.begin(), l.end(), std::inserter(dest_list, dest_list.end()));
Run Code Online (Sandbox Code Playgroud)

并且,不像back_inserter,据我所知,inserter可以为任何STL容器工作!我试了一下成功为std::vector,std::list,std::map,std::unordered_map来这里之前感到惊讶.

我想也许是因为push_back某些结构的速度可能更快insert(.end()),但我不确定......

对于std::list(有道理)似乎并非如此:

// Copying 10,000,000 element-list with std::copy. Did it twice w/ switched order just in case that matters.
Profiling complete (884.666 millis total run-time): inserter(.end())
Profiling complete (643.798 millis total run-time): back_inserter
Profiling complete (644.060 millis total run-time): back_inserter
Profiling complete (623.151 millis total run-time): inserter(.end()) …
Run Code Online (Sandbox Code Playgroud)

c++ containers iterator stl vector

49
推荐指数
1
解决办法
2万
查看次数

如何将句子或文档转换为向量?

我们有用于将单词转换为向量的模型(例如word2vec模型).是否存在将句子/文档转换为向量的类似模型,可能使用为单个单词学习的向量?

nlp vector word2vec

49
推荐指数
4
解决办法
3万
查看次数

2D欧几里德矢量旋转

a坐在坐标处有一个欧几里得矢量(0, 1).我想旋转a通过围绕原点90度(顺时针)(0, 0).

如果我对这应该如何工作有一个正确的理解,旋转后的结果(x,y)坐标应该是(1, 0).如果我将它旋转45度(仍然顺时针),我会期望得到的坐标(0.707, 0.707).

theta = deg2rad(angle);

cs = cos(theta);
sn = sin(theta);

x = x * cs - y * sn;
y = x * sn + y * cs;
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,angle值为90.0度,结果坐标为:(-1, 1).而我真的很困惑.以下链接中的示例代表了上面显示的相同公式?

我做错了什么?或者我误解了矢量是如何旋转的?

c++ math trigonometry vector rotation

48
推荐指数
5
解决办法
8万
查看次数

添加到对的向量

我有一个vectorpair像这样的:

vector<pair<string,double>> revenue;
Run Code Online (Sandbox Code Playgroud)

我想在地图中添加一个字符串和一个double,如下所示:

revenue[i].first = "string";
revenue[i].second = map[i].second;
Run Code Online (Sandbox Code Playgroud)

但由于收入未初始化,因此出现了出界错误.所以我尝试使用vector::push_back这样的:

revenue.push_back("string",map[i].second);
Run Code Online (Sandbox Code Playgroud)

但那说不能采取两个论点.那么,如何可以添加到这个vectorpair

c++ vector std-pair

48
推荐指数
5
解决办法
17万
查看次数

矢量:初始化还是保留?

我知道向量的大小,这是初始化它的最佳程序?:

选项1

vector<int> vec(3); //in .h
vec.at(0)=var1;     //in .cpp
vec.at(1)=var2;     //in .cpp
vec.at(2)=var3;     //in .cpp
Run Code Online (Sandbox Code Playgroud)

选项2

vector<int> vec;     //in .h
vec.reserve(3);     //in .cpp
vec.push_back(var1);     //in .cpp
vec.push_back(var2);     //in .cpp
vec.push_back(var3);     //in .cpp
Run Code Online (Sandbox Code Playgroud)

我猜选项2优于1.是吗?其他选择?

c++ vector

48
推荐指数
5
解决办法
3万
查看次数

如何创建用户定义大小但没有预定义值的向量?

在C++中,可以创建一个预定义大小的数组,例如20 int myarray[20].但是,关于向量的在线文档并未显示初始化向量的相似方法:相反,应使用例如初始化向量std::vector<int> myvector (4, 100);.这给出了大小为4的向量,其中所有元素都是值100.

如何使用预定义的大小初始化向量而没有预定义的值,就像使用数组一样?

c++ vector

48
推荐指数
1
解决办法
11万
查看次数

C++试图在向量中交换值

这是我的交换功能:

template <typename t>
void swap (t& x, t& y)
{
    t temp = x;
    x = y;
    y = temp;
    return;
}
Run Code Online (Sandbox Code Playgroud)

这是我的函数(在旁注v存储字符串)调用交换值,但每当我尝试使用向量中的值调用时,我得到一个错误.我不确定我做错了什么.

swap(v[position], v[nextposition]); //creates errors
Run Code Online (Sandbox Code Playgroud)

c++ swap vector

47
推荐指数
4
解决办法
13万
查看次数

std :: vector内存是否清除了?

假设我有一个std :: vector of structs.如果向量是清晰的()'d,内存会发生什么?

std::vector<myStruct> vecs;
vecs.resize(10000);
vecs.clear();
Run Code Online (Sandbox Code Playgroud)

内存是否会被释放,或仍然作为可重用缓冲区附加到vecs变量?

c++ memory vector

47
推荐指数
5
解决办法
4万
查看次数