Questions tagged «push-back»


2
具有已构建对象的std :: move与emplace_back()的C ++ 11 push_back()效率
在C ++ 11emplace_back()中(就效率而言)通常更可取,push_back()因为它允许就地构造,但是当push_back(std::move())与已经构造的对象一起使用时,仍然是这种情况吗? 例如,emplace_back()在以下情况下还是首选? std::string mystring("hello world"); std::vector<std::string> myvector; myvector.emplace_back(mystring); myvector.push_back(std::move(mystring)); // (of course assuming we don't care about using the value of mystring after) 另外,在上面的示例中代替这样做有什么好处: myvector.emplace_back(std::move(mystring)); 还是此举完全是多余的,还是没有效果?

5
结构初始化向量
我想知道如何使用该push_back方法将值添加到结构向量中 struct subject { string name; int marks; int credits; }; vector<subject> sub; 那么,现在如何向其中添加元素? 我有初始化字符串名称的函数(以它的主题名称为准) 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 …
76 c++  vector  struct  push-back 

2
添加到std :: vector时类字段的行为异常
在以下情况下,我发现了一些非常奇怪的行为(在clang和GCC上)。我有一个向量,nodes有一个元素,一个class的实例Node。然后,我在上调用一个函数nodes[0],Node以向向量添加新的函数。添加新节点后,将重置调用对象的字段!但是,一旦功能完成,它们似乎又恢复正常。 我相信这是一个最小的可复制示例: #include <iostream> #include <vector> using namespace std; struct Node; vector<Node> nodes; struct Node{ int X; void set(){ X = 3; cout << "Before, X = " << X << endl; nodes.push_back(Node()); cout << "After, X = " << X << endl; } }; int main() { nodes = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.