如何像在javascript中一样"push" c ++映射
How to "push" c++ map like it's done in javascript
在C++中,我想将键/值对象"推送"到数组中,就像我在JavaScript中所做的那样。
以下是我通常在 JavaScript 中做的事情:
var people = [];
var males = [];
people.push({ name: 'david',age: 45,sex: 'male'});
people.push({ name: 'mary',age: 22,sex: 'female'});
people.push({ name: 'alan',age: 52,sex: 'male'});
people.push({ name: 'fred',age: 19,sex: 'male'});
people.push({ name: 'alice',age: 33,sex: 'female'});
for (var i = 0; i < people.length; i++)
{
if (people[i].sex == 'male')
{
males.push({
name: people[i].name,
age: people[i].age,
sex: people[i].sex
});
}
}
这是我在C++中的尝试:
int foo()
{
std::map<std::string, int> aData;
MySQL my;
char szQueryText[200] = { ' ' };
MYSQL_RES *My_result = nullptr;
snprintf(szQueryText, sizeof(szQueryText), "SELECT * FROM %s.object_affixes WHERE objType = %d ORDER BY rowID ASC;", DB_DATA, 1);
My_result = MySQL__query(szQueryText);
int num = my.Query(szQueryText);
while (num > 0)
{
my.NextRow();
num--;
aData.insert('rangeFrom', atoi(my.GetData("rangeFrom")));
}
MySQL__endquery(My_result);
在我的C++示例中,我想遍历 while(( 循环,就像我在 for(( 循环 js 示例中所做的那样,我做得很好。 在C++我需要构建一个新数组(就像我的 males[] js 数组一样(并将迭代的数据推送到其中。
如何获得 C++ std::map 以正确执行此操作? 我什至使用std::map还是应该使用其他东西?
试试这个:
struct Person
{
std::string name;
size_t age;
std::string sex;
};
std::vector<Person> database;
Person p("Fred", 21, "male");
database.push_back(p);
C++语言不是JavaScript,所以你必须以C++的方式做事。
你可以尝试这样的事情:
database.push_back(Person("Alice", 19, "female"));
使用哪个容器取决于它的用途。
对于向量,您可以emplace_back(自 C++11 起可用(:
struct Person
{
std::string name;
size_t age;
std::string sex;
};
std::vector<Person> database;
//...
database.emplace_back("david", 45, "male");
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 为什么在C++中对链表这样做?(像堆叠一样处理它们)
- 堆栈和队列是否像C++中的数组一样传递?
- 是否有技术原因阻止 Java 中的 final C++ 像 const 一样严格?
- 访问数据成员(本身是对象)的数据成员,就好像它们是类成员一样
- 我们可以将集合的值存储在变量中吗?就像我们可以将数组的值存储在变量中一样
- 我如何在C++像在 Python 中一样实现 f 字符串?
- 自制的上衣:看起来一样,但不完全相同
- 如何使用 redis-plus-plus 存储二进制数据,就像我想存储结构一样?@for_stack?
- 如何像在 C++ 中处理数组一样对 .txt 文件中的字符进行寻址?
- 如何将两个字符串加在一起,就好像它们是变量一样?
- 像 CPP 中的控制台一样的应用程序
- 为什么C++中没有常量引用,就像常量指针一样?
- 为什么将两个对象分配给另一个对象后,两个对象不一样?
- 有没有像给定的一样的 std::optional_function
- Java 是否像C++模板一样具有泛型推论?
- 记忆栅栏和记忆屏障是一样的吗
- 对象作为参数传递,就好像我们正在传递构造函数值一样
- C++自己的对象堆栈.在 push() 上复制了什么?
- 如何像在javascript中一样"push" c ++映射