草庐IT

vector_tostr

全部标签

c++ - 初始化 vector 成员变量的正确方法

//MethodOneclassClassName{public:ClassName():m_vecInts(){}private:std::vectorm_vecInts;}//MethodTwoclassClassName{public:ClassName(){}//donothingprivate:std::vectorm_vecInts;}问题>初始化类的vector成员变量的正确方法是什么?我们必须初始化它吗? 最佳答案 见http://en.cppreference.com/w/cpp/language/default_

c++ - 通过迭代器与通过运算符 []/索引访问 std::vector 的速度?

说,我有一个std::vectorv;在我的代码中,我需要在程序中经常访问它的元素,将它们向前和向后循环。这两种访问类型中哪一种是最快的?迭代器访问:std::vectorv;std::vector::iteratori;std::vector::reverse_iteratorj;//iloopsforward,jloopsbackwardfor(i=v.begin(),j=v.rbegin();i!=v.end()&&j!=v.rend();i++,j++){//someoperationsonvitems}下标访问(按索引)std::vectorv;unsignedinti,j,

c++ - 如何将 vector 转换为集合?

我有一个vector,我在其中保存对象。我需要将其转换为设置。我一直在阅读关于集合的内容,但我仍有几个问题:如何正确初始化呢?老实说,有些教程说可以像setsomething那样初始化它。.其他人说你也需要一个迭代器,比如setsomething.如何正确插入。再说一次,只写something.insert(object)就够了吗?仅此而已?如何从集合中获取一个特定的对象(例如,一个对象中有一个命名变量,等于“ben”)?我必须将vector本身转换为一个集合(也就是我必须使用集合而不是vector)。 最佳答案 假设你有一个字符串

c++ - 对象指针 vector 上的 vector::erase() 会破坏对象本身吗?

我有一个指向对象的指针vector。我需要从vector中删除一个元素并将该元素放在另一个列表中。我读到删除可用于从vector中删除对象,但我也读到它在这样做之前调用对象析构函数。我需要知道删除对象是否也会破坏它。 最佳答案 vector::erase从vector容器中删除并调用其析构函数,但如果包含的对象是指针,则它不会拥有销毁它的所有权。您必须在每个包含的指针上显式调用delete以删除它指向的内容,例如:voidclearVectorContents(std::vector&a){for(inti=0;i在标准容器中存储原

c++ - 恒定大小的 vector

有人知道定义常量vector的方法吗?例如,而不是定义std::vector会的std::vector它应该是完全跨平台的。也许是一个开源类? 最佳答案 std::vector总是可以动态增长,但是有两种方法可以分配初始大小:这会分配初始大小并用零填充元素:std::vectorv(10);v.size();//returns10这会分配一个初始大小,但不会用零填充数组:std::vectorv;v.reserve(10);v.size();//returns0 关于c++-恒定大小的v

c++ - 如何打印通过引用传递的 glm::vec3 类型的 vector 值?

我有一个小型obj加载器,它需要两个参数并将它们传递回输入变量。但是这是我第一次这样做,我现在不知道如何打印所述值。这是我测试加载程序是否正常工作的主要功能。我有两个glm::vec3类型的vector来保存顶点和法线数据。std::vectorvertices;std::vectornormals;intmain(){booltest=loadOBJ("cube.obj",vertices,normals);for(inti=0;i上面评论的那一行是产生无用信息的原因。如果我这样离开它并运行程序,我会收到一堆错误(格式太长,无法粘贴到这里),如果我添加引用运算符,我会得到如下输出:p

c++ - 我可以在初始化列表中用 10 个相同的整数初始化 STL vector 吗?

我可以在初始化列表中使用10个相同的整数来初始化STLvector吗?到目前为止,我的尝试都失败了。 最佳答案 使用适当的构造函数,它接受一个大小和一个默认值。intnumber_of_elements=10;intdefault_value=1;std::vectorvec(number_of_elements,default_value); 关于c++-我可以在初始化列表中用10个相同的整数初始化STLvector吗?,我们在StackOverflow上找到一个类似的问题:

c++ - 将 std::string 转换为 std::vector<char>

我正在使用一个库,它接受数据作为char的vector。我需要将string传递给库。我考虑使用std::vector构造函数,它接受迭代器来执行转换-但想知道是否有更好的方法?/*Note:json_strisoftypestd::string*/conststd::vectorcharvect(json_str.begin(),json_str.end()); 最佳答案 不,就是这样做的,直接用字符串中的数据初始化vector。正如@ildjarn在他的评论中指出的那样,如果出于某种原因您的数据缓冲区需要以空值终止,您需要使用c

c++ - 为什么在 C++11 中更改了 std::vector::resize 签名?

std::vector::resize从pre-C++11的变化背后的原因是什么:voidresize(size_typecount,Tvalue=T());到兼容的C++11形式:voidresize(size_typecount);voidresize(size_typecount,constvalue_type&value); 最佳答案 C++11标准附录C(兼容性)的C.2.12段规定:Change:Signaturechanges:resizeRationale:Performance,compatibilitywithm

c++ - 数组 vs vector vs 列表

我正在维护一个包含10个条目的固定长度表。每个项目都是类似4个字段的结构。将有插入、更新和删除操作,由数字位置指定。我想知道哪个是用于维护此信息表的最佳数据结构:array-由于移位,插入/删除需要线性时间;更新需要恒定的时间;没有空间用于指针;使用[]访问项目更快。STLvector-由于移位,插入/删除需要线性时间;更新需要恒定的时间;没有空间用于指针;访问项目比数组慢,因为它是对operator[]和链表的调用。STLlist-插入和删除需要线性时间,因为您需要在应用插入/删除之前迭代到特定位置;指针需要额外的空间;访问项比数组慢,因为它是链表线性遍历。现在,我的选择是使用数组。